2010-05-28 5 views
1

Благодаря некоторой помощи от недавнего поста, я выбор строки по первичному ключу, следующим образом:PHP/MYSQL Различные Trouble Выбор по первичному ключу:

$query ="SELECT * FROM Bowlers WHERE 'key' = '1'"; 
$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_assoc($result)or die(mysql_error()); 

По какой-то причине, третью линию код умирает каждый раз, без ошибок. Он отлично работает с использованием других ключей, то есть WHERE name = 'djs22'.

Любые идеи?

ответ

1

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

not ', but ` 
+0

О, вау - это на самом деле то же самое исправление с моего последнего сообщения. На этот раз он просто разбился в другом месте, поэтому я подумал, что правильно его выполнил. Спасибо, что научили меня разнице между одной цитатой и обратной стороной, определенно должны были это осознать раньше! – djs22

+0

Заметьте, что обратная сторона - это приложение, зависящее от MySQL: в стандартном ANSI SQL он должен быть двойным кавычками, но MySQL неправильно использует это как альтернативу для строковых литералов по умолчанию. Если вам нужно быть совместимым с несколькими базами данных, избегайте цитирования полей и имен таблиц (что означает, что вы должны быть осторожны с тем, что вы им назовете). Это довольно неудачно. – bobince

0

попробовать

$query ="SELECT * FROM Bowlers WHERE key = '1'"; 

или

$query ="SELECT * FROM `Bowlers` WHERE `key` = '1'"; 

вместо

$query ="SELECT * FROM Bowlers WHERE 'key' = '1'"; 
+0

В этом случае ключ '' key' \ 'будет единственным, поскольку ключ является зарезервированным словом в mysql –

0

попробуйте использовать этот

$query ="SELECT * FROM Bowlers WHERE `key` = '1'"; 
$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_assoc($result)or die(mysql_error()); 

Я только что заменил '' на .

Смежные вопросы