我有一个用于PDO语句的for循环,我希望它做两件事。 数据以称为$data的数组数组从用户设备接收。 我想将每一行插入到一个名为"theJack"的表中。 这部分工作正常。
然后,我想要另一个语句来检查$data表中的 [用户名] 和 [id],并更新 theJack 中的列([同步] 值"Y"或"N"),其中 [用户名] 和 [id] 在两个表中都匹配。 到目前为止,我有这个(现在只是使用 [用户名] 进行测试):
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[用户名] 是该行中的用户名。 $STH是 INSERT 语句,$UPD是 UPDATE 语句。
到目前为止,INSERT 语句本身工作正常。 添加 UPDATE 语句也有效,直到我尝试添加 WHERE 子句。
补充一点,我得到许多绑定变量与令牌数量不匹配的错误。
又一个愚蠢的错别字问题。
$UPD->execute();