Проверить наличие таблицы mysql и поля в таблице

goacher

Новичок
Проверить наличие таблицы mysql и поля в таблице

как можно с помощью функций php проверить наличие определенной таблицы в базе и проверить наличие поля в таблице.
И есть ли функция добавление поля в уже существующую таблицу?
Спасибо.
 

fixxxer

К.О.
Партнер клуба
>> как можно с помощью функций php проверить наличие определенной таблицы в базе и проверить наличие поля в таблице.

может оказаться проще через http://dev.mysql.com/doc/refman/5.1/en/information-schema.html

>> И есть ли функция добавление поля в уже существующую таблицу?

alter table; но если такая необходимость возникает не в скрипте наподобие phpmyadmin или для управления структурой базы, а вылезает в логике веб-приложения, ты явно делаешь что-то неправильно.
 

melo

однажды
>>а вылезает в логике веб-приложения, ты явно делаешь что-то неправильно.

а если есть продукт и надо добавить к нему новое поле через бекэнд?
 

vovanium

Новичок
melo
Значит делаешь что-то не так, написали же :)
В таблице продуктов обычно хранятся общие свойства которые есть у всех продуктов. А для дополнительных свойств делаются таблички типа Свойства и связующая Продукт-Свойство-Значение
 

melo

однажды
типа eav модель, которая ужасно тормозит при больших размерах.
 

fixxxer

К.О.
Партнер клуба
Не, ну я не вижу ничего плохого, если это делается в админке, и такая архитектура делается осознанно в целях оптимизации; это вобщем то вариация на тему phpMyAdmin и выходит.

Тут как раз information schema полезна со всех сторон.
 

Viktor_Rez

Новичок
Да элементарно!

mysql_query("show tables where Tables_in_typo_db = 'TABLE_NAME'"); для поиска таблицы

mysql_query("show columns FROM `TABLE_NAME` where `Field` = 'FIELD_NAME'"); для поиска поля

Проверять ессно на кол-во возвращаемых записей
 

melo

однажды
сейчас работаю с маджентой, у них вначале многое было построено на eav модели, но когда нагрузка на сайты начала расти, то началось много претензий к eav. поэтому постепенно переходят на flat таблицы, а добавление нового поля сводится там к alter table add column.
 

vovanium

Новичок
melo
И что это показатель? Да любой универсальный движок тормознутый до ужаса, особенно движки магазинов.
 
Сверху