我有功能
function count_where($param, $value)
{
$result=mysql_query("SELECT COUNT(*) AS TOTAL FROM vote WHERE '$param'='$value'");
$data=mysql_fetch_assoc($result);
return $data['TOTAL'];
}
并尝试将其称为
count_where('picture','black circle')
其中picture具有varchar类型(在MySQL中)。它不起作用。
此
$result=mysql_query("SELECT COUNT(*) AS TOTAL FROM vote WHERE picture='black circle'");
$data=mysql_fetch_assoc($result);
echo $data['TOTAL'];
工作;
答案 0 :(得分:3)
如果要封装列名,请使用反引号`
代替撇号'
但要小心,注意sql注入。在运行查询之前,您最好这样做:
$param = mysql_real_escape_string($param);
$value = mysql_real_escape_string($value);
答案 1 :(得分:1)
使用这样的反引号替换列名中的单引号:
function count_where($param, $value)
{
$result=mysql_query("SELECT COUNT(*) AS TOTAL FROM vote WHERE `$param`='$value'");
$data=mysql_fetch_assoc($result);
return $data['total'];
}
答案 2 :(得分:-1)
$result=mysql_query("SELECT COUNT(*) AS TOTAL FROM vote WHERE ".$param."='".$value."'");
我认为这会给你答案