|
|
|
| начал читать книгу "mysql 5 наиболее полное руководство".
в одной главе, описывающей взаимодействие mysql c php, меня удивил один момент:
там описывается синтаксис запроса:
$cat = mysql_query("SELECT name FROM catalogs WHERE id_catalog = 1");
|
хотя в таком виде запрос будет работать в mysql 4, но в 5 не работает.
в 5 используют:
$cat = mysql_query("SELECT `name` FROM `catalogs` WHERE `id_catalog` = 1");
|
дак вот почему в книге написаной для mysql 5 описывается не правильный синтаксис?
или может я что-то не правильно понимаю? | |
|
|
|
|
|
|
|
для: Night_Phantom
(07.01.2008 в 17:06)
| | Немного не так - оба запроса прекрасно выполнятся как в MySQL версии 5, так и в более ранних версиях. Обратные кавычки были введены, для того, чтобы можно было использовать в качестве имени столбца зарезервированные имена. Например, если вы напишите
анализатор не сможет разобрать такой запрос, ни в MySQL 5, ни в более ранних версиях, однако, если зарезервированные имена будут заключены в обратные кавычки - запрос будет обработан
SELECT `SELECT` FROM `TABLE`
|
Обратные кавычки обязательны только для зарезервированных слов - все остальные имена можно использовать без них.
PS Сами обратные кавычки были введены задолго до версии 4.0. | |
|
|
|
|
|
|
|
для: cheops
(07.01.2008 в 17:36)
| | спасибо, буду знать.
но почему-то когда я не использую обратные ковычки запрос не выполняется. зарезервированных имена и не использую | |
|
|
|
|
|
|
|
для: Night_Phantom
(07.01.2008 в 17:55)
| | 1) Прикрепите пожалуйста файл my.ini - что в нём (возможно включён какой-то специфичный SQL-режим)?
2) Версия MySQL какая используется (до третьего знака)? | |
|
|
|
|
|
|
|
для: cheops
(07.01.2008 в 19:00)
| | могу только сказать, что это версия 5.1 :)
всё остальное нужно просить у компании, чьими услугами по хостингу я пользуюсь.
по этому прикрепить файл my.ini нет возможности. | |
|
|
|
|
|
|
|
для: Night_Phantom
(07.01.2008 в 20:13)
| | Хм... вообще-то 5.1 не является пока стабильным релизом и не рекомендована для использования на рабочих серверах (хотя находится в стадии Release Candidate и очень близка к релизу). Попробуйте извлечь SQL-режим при помощи запроса
show variables like '%sql_mode%';
|
Что возвращает запрос? | |
|
|
|
|
|
|
|
для: cheops
(07.01.2008 в 20:33)
| | у меня видимо не достаточно знаний, чтобы сообразить как создать этот запрос.
сделал так:
print(mysql_query("show variables like '%sql_mode%'"));
|
получилось это: Resource id #4
но думаю, что это вовсе не то, что надо :) | |
|
|
|
|
|
|
|
для: Night_Phantom
(07.01.2008 в 21:02)
| | Вообще-то предлагалось исполнить этот запрос в чем-то вроде phpMyAdmin (закладка Select)
В php же (если Вы хотите забрать результат в массив) нужно будет написать что-то вроде
$res = mysql_query("show variables like '%sql_mode%'");
for($rows = array(); $row = mysql_fetch_assoc($res); $rows[] = $row);
print_r($rows);
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.01.2008 в 21:48)
| | выдает пустое значение
---------------------------------
Variable_name | Value
---------------------------------
....sql_mode......|............. | |
|
|
|
|
|
|
|
для: Night_Phantom
(07.01.2008 в 22:36)
| | Хм... значит SQL-режимов нет... странно, а как выглядит запрос на добавление таблицы CREATE TABLE? | |
|
|
|