php5проблема создания базы

Segey
На сайте с 23.08.2005
Offline
404
603

Пытаюсь создать базу в php5 через

mysql_query("CREATE DATABASE base-base");

Но выдают ошибку синтаксиса из-за "-", но дефис там может быть. Как в php от этой ошибки избавится?

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
edogs software
На сайте с 15.12.2005
Offline
775
#1

mysql_query("CREATE DATABASE `base-base`"); скорее всего.

И убедитесь что прав для создания базы из php Вам хватает. У хостеров далеко не всегда это оттуда разрешено.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
Segey
На сайте с 23.08.2005
Offline
404
#2

edogs,

Спасибо помогло, раньше никогда не обращал внимания на синтаксис так сильно, хотя и создавалось все хорошо.

Dreammaker
На сайте с 20.04.2006
Offline
569
#3
Segey:
раньше никогда не обращал внимания на синтаксис так сильно, хотя и создавалось все хорошо.

Здесь проблема в том, что дефис можно принять как минус, создаётся двузначность вот mysql и ругается.

progress
На сайте с 11.07.2006
Offline
125
#4

Вообще лучше всегда заключать в обратные кавычки имена полей, таблиц и баз, может случиться ситуация, что сейчас имя не зарезервировано, но в будущем его зарезервируют - и будете искать причины ошибок

Петр Елагин
На сайте с 21.03.2007
Offline
197
#5
Segey:
Пытаюсь создать базу в php5 через

mysql_query("CREATE DATABASE base-base");

Но выдают ошибку синтаксиса из-за "-", но дефис там может быть. Как в php от этой ошибки избавится?

Не нужен дефис, вы сами потом запаритесь писать в селектах кавычки

получаеться если ранее, вам просто нужно было писать

select 1 from base_base, причем это строка, т.е.

$sSql = "select 1 from base_base.base_base where base_base.id = :var0",

то теперь нужно

$sSql = "select 1 from \"base-base\".\"base-base\" where \"base-base\".\"base-base\".id = :var0",

Поверьте это гиморно. особенно если много кавычек.

Вы упростите себе жизнь. если сделаете таблицу и базу просто base

Pavka
На сайте с 20.05.2005
Offline
82
#6
AlienZzzz:
Не нужен дефис, вы сами потом запаритесь писать в селектах кавычки
получаеться если ранее, вам просто нужно было писать
select 1 from base_base, причем это строка, т.е.
$sSql = "select 1 from base_base.base_base where base_base.id = :var0",
то теперь нужно

$sSql = "select 1 from \"base-base\".\"base-base\" where \"base-base\".\"base-base\".id = :var0",
Поверьте это гиморно. особенно если много кавычек.
Вы упростите себе жизнь. если сделаете таблицу и базу просто base

Ну вообще-то edogs уже сказал как правильно оформлять запрос:

mysql_query("CREATE DATABASE `base-base`");

т.е.

$sSql = "select 1 from `base-base`.`base-base` where `base-base`.`base-base`.id = :var0",

А то что Вы написали... мягко говоря неправильно 🚬

Без подписи
Петр Елагин
На сайте с 21.03.2007
Offline
197
#7
Pavka:
Ну вообще-то edogs уже сказал как правильно оформлять запрос:
т.е.

А то что Вы написали... мягко говоря неправильно 🚬

чтоиммено не правильно

формат такой

[database-name].[table-name][column-name]

Что не правильно.

Я хотел сказать, что называть таблицы и базы с дефисом - плохой том.

Извините, что плохо выразился. исправлюсь.

Pavka
На сайте с 20.05.2005
Offline
82
#8
AlienZzzz:
чтоиммено не правильно
формат такой
[database-name].[table-name][column-name]
Что не правильно.
Я хотел сказать, что называть таблицы и базы с дефисом - плохой том.
Извините, что плохо выразился. исправлюсь.

AlienZzzz, я имел ввиду кавычки :)

зачем писать так: \"base-base\", когда правильно будет `base-base`... ну или на крайний случай так: 'base-base' (тоже правильно, т.к. в данном случае запрос взят в двойные кавычки)

А в целом Вы правильно сказали!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий