函数与字符串参数

时间:2014-05-22 19:34:52

标签: php sql

我有功能

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'];

工作;

3 个答案:

答案 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."'");

我认为这会给你答案