2012-02-23 105 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,则categoryname显示正确。

的ID也传递像它应该,当我把它打印出来,它显示8或9

我知道解决的办法很简单,我只是没有看到它。

+1

如果ID是int,则不必使用引号。在你的表中还有名称或名称? – Mo3z 2012-02-23 20:26:04

+0

...另外,请阅读关于SQL注入 – scibuff 2012-02-23 20:26:51

+0

是整数类型的ID吗?如果是这样的话,你可以尝试删除像'WHERE ID =“。$ id这样的''''' – Akhil 2012-02-23 20:27:05

回答

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

是列名称ID拼写正确?