1

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

$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]));
    }

当我使用他的第一个示例时(使用准备而不是查询使用数组传递值)根本不起作用,查询返回一个数字但不起作用ifupdateinsert)部分我已经尝试了一堆东西和输出,没有任何工作...

4

1 回答 1

3

当您使用与 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)");
于 2012-07-22T01:07:46.190 回答