0

我有一个 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 语句也有效。

补充一下,我得到了一些绑定变量与令牌数不匹配的错误。

4

1 回答 1

0

又一个愚蠢的错字问题。

$UPD->execute();
于 2013-11-04T06:08:31.093 回答