我正在尝试在同一个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,为什么?任何相关性? –