Mysql PDO准备执行计数(PHP)

时间:2012-07-21 23:02:14

标签: php mysql pdo

当前我正在尝试使用用户输入查询COUNT(*),所以我想准备它,但是当我这样做时没有响应,我也使用这个: Row count with PDO例如,(准备和查询),但它们似乎都不起作用。为什么?没有理由......

$count = $con->query("SELECT COUNT(*) FROM $table WHERE senha='$senha' AND var='{$ar[$i]}'")->fetchColumn();
    if($count!=0){
        $q = $con->prepare("UPDATE $table SET value=':value' WHERE senha=':senha' AND var=':var'");
        $q->execute(array(':senha' => $senha, ':value' => $ar[$i+1], ':var' => $ar[$i]));
    }else{
        $q = $con->prepare("INSERT INTO $table (id,senha,var,value) VALUES (NULL, ':senha', ':var', ':value')");
        $q->execute(array(':senha' => $senha, ':var' => $ar[$i], ':value' => $ar[$i+1]));
    }

当我使用他的第一个例子(使用prepare not query使用数组传递值)根本不起作用时,查询返回一个数字但不起作用ifupdateinsert)部分我尝试了很多东西和输出,没有任何效果......

1 个答案:

答案 0 :(得分:3)

使用参数bind与PDO时,不应包含单引号。所以纠正你的UPDATE和INSERT查询如下:

$q = $con->prepare("UPDATE $table SET value=:value WHERE senha=:senha AND var=:var");

$q = $con->prepare("INSERT INTO $table (id,senha,var,value) VALUES (NULL, :senha, :var, :value)");