我有一个 PDO 语句的 for 循环,我希望它做两件事。数据从用户设备接收到一个名为 $data 的数组中。我想将每一行插入一个名为“theJack”的表中。这部分工作正常。
然后我想要另一个语句来检查 $data 表中的 [userName] 和 [id] 并更新 theJack 中 [userName] 和 [id] 匹配的列([Synched] 值 'Y' 或 'N')两张桌子。到目前为止,我有这个(现在只是用 [userName] 测试):
for($i = 0; $i<count($data); ++$i) {
$row = $data[$i];
$userName = $row[userName];
$STH = $conn->prepare("INSERT INTO theJack (id, phoneID, userName, noDeer, Lat, Lon, Acc, Time, Synched) value (:id, :UUID, :userName, :noDeer, :lat, :lng, :accuracy, :timestamp, :synched)");
$UPD = $conn->prepare("UPDATE theJack SET Synched = 'Y' WHERE userName= :userName");
$UPD->bindParam(':userName', $userName);
$STH->execute($row);
$UPD->execute($row);
}
$row 是输入 $data 数组中的每一行。$row[userName] 是该行中的用户名。$STH 是 INSERT 语句,$UPD 是 UPDATE 语句。
到目前为止,INSERT 语句本身就可以正常工作。在我尝试添加 WHERE 子句之前,添加 UPDATE 语句也有效。
补充一下,我得到了一些绑定变量与令牌数不匹配的错误。