1

現在、ユーザー入力を使用して COUNT(*) を照会しようとしているので、準備したいのですが、それを実行しても応答がありません。これも使用して作成しました: 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]));
    }

私が彼の最初の例を使用していたとき (配列を使用して値を渡すクエリではなく準備を使用) はまったく機能しませんでした。クエリは数値を返しますが、if(updateまたはinsert) 部分は機能しません。何も機能しませんでした...

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 に答える