2012-02-23 2 views
0

у меня есть это очень простая функция:Простой запрос MySQL не работает

function getCatName($id){ 
$sql = "SELECT * FROM biznet_category WHERE ID ='".$id."';"; 
$res = mysql_query ($sql) or die (mysql_error()); 
$row = mysql_fetch_assoc ($res); 
$name = $row["Name"]; 
return $name; 
} 

Так что с этой функцией я должен быть в состоянии получить название категории, но он не работает с параметром. Если я помещаю 8 или 9, имя категории отображается правильно.

Идентификатор также передается, как и должно быть, когда я печатаю это, это показывает, 8 или 9.

Я знаю, что решение довольно просто, я просто не вижу.

+1

Если ID является int, он не обязательно должен быть в кавычках. Также в вашей таблице это имя? Или имя? – Mo3z

+0

... также, пожалуйста, прочитайте о SQL-инъекции – scibuff

+0

является идентификатором типа integer? если да, можете ли вы попробовать удалить '' '' like 'WHERE ID =. $ id." ' – Akhil

ответ

1

Чтобы исправить удалить кавычки и проверьте имя столбца для случая ID или ID. Поскольку строка запроса находится в двойных кавычках, вам не нужно использовать. присоединиться

$sql = "SELECT * FROM biznet_category WHERE ID = $id"; 

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

$sql = "SELECT * FROM biznet_category WHERE ID = {$id}"; 

Если вы запрашивая строку, а не целое число, вы можете просто сделать

$sql = "SELECT * FROM biznet_category WHERE ID = '{$id}'"; 
0
$sql = "SELECT * FROM biznet_category WHERE ID ='".$id."';"; 

Для

$sql = "SELECT * FROM biznet_category WHERE ID = ".$id; 
0

Попробуйте

$sql = "SELECT * FROM biznet_category WHERE ID = ".$id; 
0

ли колонка Идентификатор имени написан правильно?

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