всё же с ` или без ?

m2k

Новичок
всё же с ` или без ?

так как же всётаки правильно писать имена таблиц и полей в mysql запросах... с апострофами или без них или в одних случаях с апострофами в других без них ?
вопрос возник потомучто один раз была проблемма когда поле называлось on и при запросе возникала ошибка когда взял поле в апострофы ошибка пропала... посже появилась проблемма совсем противоположная при обхединении таблиц если написать `table1.id`=`table2.id` mysql писал что полей не существует когда писал тоже только без апострофоф всё работало на ура... phpmyadmin пишет в апострофах а в мане по Mysql нету апострофоф так всё как правильно разъясните плиз... возможно это очень глупый вопрос и вы пошлёте меня в ман или в поиск )) но мне просто инетерсно знать как правильно делать :)
 

Profic

just Profic (PHP5 BetaTeam)
хорошей практикой является использование имен таблиц и полей не идентичных зарезервированныи словам sql (типа твоего on). тогда никакие апострофы не нужны
бэктики нужны, чтобы сказать муське, рассматривай эту строку как идентификатор. в ствоем случае с table1.id mysql правильно ругался, т.к. явно нет такого поля "table1.id". правильный синтаксис можно посмотреть в том же phpmyadmin-е
phpmyadmin берет все имена в backtick-и чтобы не заморачиваться и не гадать, является ли данное название ззаразервированным или нет
 

m2k

Новичок
у меня щас все поля и таблицы взяты в ` т.е. это синтаксически верно?
а где мне в запросе нада будет использовать table1.id (или нечно подобное) то не брать в апострофы это тоже будет верно правильно я понял ?
 

m2k

Новичок
ок )) огромное спасибо ! а то я очень заморочился на эту тему))) терь мне всё ясна)) я почти всё делал правильно ) кроме того что недопёр написать `table`.`id` так как и правда не существует поля `table.id` )) ещё раз огромное спасибо за разъяснения))
 
Сверху