我正在嘗試在同一個sql語句中執行UPDATE和SELECT。出於某種原因,下面的代碼失敗了。MySQL更新和選擇一條語句
$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);
問:什麼可能我是做錯了什麼?我一直在這個問題上花費數小時,因爲它可能是我鼻子下面的一個小錯誤。
被修改:
未捕獲的異常 'PDOException' 與消息「SQLSTATE [HY000]:
予加載包含PHP代碼的頁面時獲得此錯誤消息 一般錯誤'在ajaxCall.php:89堆棧跟蹤:#0 ajaxCall.php(89): PDOStatement-> fetchAll(2)#1 {main}拋出ajaxCall.php在線89
我正在使用ajax調用包含上述代碼的php頁面,並且當我從瀏覽器加載php頁面時,出現上述錯誤消息。
線89:$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
您是否收到錯誤?爲什麼不綁定'$ id'? – chris85
@ chris85 $ id是從$ _SESSION獲得的,從未從用戶獲得。我現在會檢查一個錯誤。 $ valueA在這裏拼寫錯了,代碼 – Webeng
沒有開始會話嗎?這是根據評論中的新代碼。你也標記爲ajax,爲什麼?任何相關性? –