同じSQL文でUPDATEとSELECTを実行しようとしています。何らかの理由で、以下のコードが失敗しています。MySQLアップデートと1つのステートメントで選択
$sql = "UPDATE mytable SET last_activity=CURRENT_TIMESTAMP,
info1=:info1, info2=:info2 WHERE id = {$id};";
$sql .= "SELECT id, info1, info2 FROM myTable
WHERE info1 >=:valueA AND info2>:valueB;"
$stmt = $conn->prepare($sql);
$stmt->bindParam(":info1", $info1);
$stmt->bindParam(":info2", $info2);
$stmt->bindParam(":valueA", $valueA);
$stmt->bindParam(":valueB", $valueB);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
質問:私は間違っているかもしれないもの?私はこの問題で、おそらく私の鼻の下に小さな誤りがあることを知っている時間を過ごしてきました。 SQLSTATE [HY000]」メッセージと
キャッチされない例外 'PDOException':
編集:PHPコードを含むページをロードするとき
私はこのエラーメッセージを取得し ajaxCall.php:89スタックトレース:#0 ajaxCall.php(89): PDOStatement-> fetchAll(2)#1 {main}行89のajaxCall.phpでスローされました
私は上記のコードを含むPHPページを呼び出すためにajaxを使用しています。ブラウザからPHPページを読み込むと、上記のエラーメッセージが表示されます。
ライン89は以下のとおりです。あなたがmysqlnd
を使用した場合に、1回のコールで2つのクエリを実行する$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
エラーが表示されますか?なぜ$ idをバインドしないのですか? – chris85
@ chris85 $ idは$ _SESSIONから得られ、決してユーザーから取得されません。私は今、エラーをチェックします。 $ valueAのスペルが間違っていたのですが、それはコード内で問題ありませんでした。 – Webeng
セッションを開始しましたか?これはコメントの新しいコードに照らしてですあなたはまた、なぜAJAXとしてタグ付けされましたか?どんな妥当性? –