LINUX.ORG.RU

[mysql] Имя таблицы как константа PHP

 


0

0

В коде есть define("DB4","db_admin"); Это делается, чтобы и функции mysql_init донести всему скрипту имя БД.

Есть mysql_query("SELECT * FROM ".DB$.");

По идее, должна бы подставиться константа DB4, но она этого не делает, в запросе вылезает DB4.

Можно ли сделать константу именем таблицы, или проще объявить глобальные переменные?

> константу именем таблицы

> глобальные переменные


за такое - руки отрывать нужно.
man ORM.

isden ★★★★★
()

> mysql_query("SELECT * FROM ".DB$.");

Меня удивляет, что этот запрос вообще запускается. Это раз. Во-вторых, константа у тебя теряется по дороге. В-третьих, ты не просто нигга, ты нигга из каменного века, раз до сих пор не слыхал о PDO и им не пользуешься. В-четвертых, использовать константы на случай «а ну ведь как имена таблиц поменяются» — это такими тараканами из архитектуры проекта и его архитектора за версту несет, что хочется взять и удолбать.

shimon ★★★★★
()
Ответ на: комментарий от isden

> за такое - руки отрывать нужно.
> man ORM.


ORM нужен далеко не всегда, но использование define'овских констант в PHP — это редкостный мазохизм с отягчающими. Их ни скрыть, ни раздефайнить нельзя. Ж-пища полнейшая. Как и то, что необъявленная константа используется совершенно по-другому, чем необъявленная переменная (я знаю, по каким именно историческим причинам, что не отменяет общей угребищности).

shimon ★★★★★
()

1. С переменными работают как: s/DB$/$DB/

Это не не Бэйсик :)

2. У тебя define. И константа подставляется в без префикса переменной: s/DB$/DB/

3. Прямые SQL-запросы - это только для простеньких решений. В крупных сразу думай об ORM. Потом меньше геморроя будет.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Ээ.. То я сглупил, DB4. Забыл шифт отпустить. ORM со следующего проекта буду вкуривать.

NiggasLife
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.