Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Почему принято имена полей и таблиц завкочать в обратный опостраф?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
shum0531
Отправлено: 19 Декабря, 2015 - 09:14:09
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Делаю небольшую обертку для pdo.
Где-то ранее в просторах интернета прочитал, что php драйвер mysql базы воспринимает обратный и обычный опостраф как одно и тоже. Правда ли это, можно узнать только посмотрев исходный код драйвера. Только вот я си не знаю.
На данный момент в моей обертке парсится sql, находит имена полей и имена таблиц и обрамляет их методом pdo::quote(), если в именах полей отсутствует имя таблици через точку то добовляет. При работе с mysql обромляется обычным опострафом. Остальной функционал не имеет отношение к данному вопросу.
Вопрос.
Есть ли что-нибудь критичного в данном подходе? Или же лучше жёстко обреблять обратным опострофом, тогда почему?
 
 Top
Мелкий Супермодератор
Отправлено: 19 Декабря, 2015 - 09:34:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




shum0531 пишет:
На данный момент в моей обертке парсится sql

Зачем?

shum0531 пишет:
обратный и обычный опостраф как одно и тоже

Во-первых, апостроф.
Во-вторых, для ясности в терминологии: ` - машинописный обратный апостроф, ' - машинописный апостроф.
Нет, ' и ` - разные вещи. Если вы имена полей обрамляете в ' - то это должна быть ошибка парсера mysql.
` и " - в зависимости от sql_mode. Для ANSI_QUOTES - одно и то же. http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]en/sql-mode[dot]html

shum0531 пишет:
Почему принято имена полей и таблиц завкочать в обратный опостраф?

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


-----
PostgreSQL DBA
 
 Top
shum0531
Отправлено: 19 Декабря, 2015 - 10:33:08
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Мелкий, спасибо за док ссылку и исчерпывающий ответ.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB