2013-08-09 4 views
0

У меня проблема, я искал ее на google, не смог ее найти.Могильные акценты вместо '' в mysqli_query

$result = mysqli_query($link,"SELECT * FROM update "); 

Ошибка

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in 

Когда я изменить запрос на:

$result = mysqli_query($link,"SELECT * FROM `update` "); 

Он работает. Почему это?

ответ

2

Те не «серьезные акценты» (акценты идти над буквами); это backticks.

Вы должны окружать имена полей с обратными кавычками, чтобы показать, что они являются именами полей, а не функции, операторы, команда и т.д.

Обычно вы можете уйти, не делая, что (и это, казалось бы, вы очень привыкли к этому!), но в случае, если ваши имена на самом деле MySQL зарезервированы ключевые слова — например, UPDATE — вы не можете.

4

update - зарезервированное слово в MySQL.

Вы должны всегда использовать обратные кавычки

` 

в `table` и ` column` имена, чтобы избежать ошибок, как это.

List of Reserved Words

+0

Я очистил ваш ответ. Просто начальные предложения с заглавными буквами показывают некоторые усилия! –

+0

@LightnessRacesinOrbit Спасибо ... Я буду иметь в виду –

+0

Правильно также, спасибо –

0

Я не эксперт SQL, но update специальное слово, которое SQL активно ищет. Поэтому, выберите материал в таблице с именем update, вам нужно обновить в кавычках.

1

UPDATE - это ключевое слово для MySQL, поэтому оно вызывает ошибку (mysql довольно запутан, потому что вы начинаете обновление внутри select). В основном рекомендуется указывать имена базы данных, таблицы и столбца между ``, чтобы избежать таких ситуаций, также вы должны проверить, что именно вернул mysqli_query, в этом случае вы получаете false вместо объекта mysqli_result, и вы можете прочитать сообщение об ошибке (возможно, говоря гораздо больше, чем «у вас есть ошибка рядом ... проверьте синтаксис запроса», но в любом случае вы должны знать, что есть что-то не так;)):

if (!($result = mysqli_query($link, $query))) { 
    die('MySQLi error: ' . mysqli_error($link)); 
} 
Смежные вопросы