2017-01-13 9 views
0

は私のプリペアドステートメントであるSQLの更新が完了したかどうかを確認する方法はありますか?ここ

$stmt = $db->prepare("UPDATE user SET :property=:value WHERE `id`=:id"); 
$stmt->execute([':property' => $property, ':value' => $value]); 
$row = $stmt->fetchAll(PDO::FETCH_ASSOC); 

どのように私はすぐに、クエリが正常に経験してきたことを確認することができますか?

私は、実行部分の周りにif()と考えていましたか?

+1

を切り開くあなたが最初の行の周り意味 –

+0

クエリ自体に '')(場合を試すことができますか? @LoganWayne – Heraclitus

+0

'$ stmt-> rowCount'を試して、実行後に更新された行の量を確認することができます。 – Phiter

答えて

1

は、あなたがする必要があるのは、このような返さ$stmtをテストしている。この

if($stmt->rowCount() > 0){ 
    echo 'SUCCESS'; 
}else{ 
    echo 'ERROR'; 
} 
0

を試してみてください。

準備と実行に失敗することができますし、このクエリは間違いなく今私はよく見る、あなたが巨大な構文エラーを持っている

を失敗します

$stmt = $db->prepare("UPDATE user SET :property=:value WHERE `id`=:id"); 
if ($stmt == false) { 
    print_r($db->errorInfo()); 
    exit; 
} 
$stmt->execute([':property' => $property, ':value' => $value]); 
if ($stmt == false) { 
    print_r($db->errorInfo()); 
    exit; 
} 

をチェックする必要があり、両方を覚えておいてくださいクエリ。列名または表名はパラメータ化できません。

あなたはまた、3つのパラメータのみ2値

+0

私はそれを実現した、私は大きなスイッチのステートメントは、 – Heraclitus

関連する問題