gpt4 book ai didi

mysql - PDO 更新行成功然后失败?

转载 作者:行者123 更新时间:2023-11-29 08:13:22 25 4
gpt4 key购买 nike

我的片段:

//I retrieve a row(s) from the table i want to update

while($row = $stmt->fetch()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $row['url']);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
$new_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);

if($new_url != $row['url']){
$stmt = $conn->prepare("UPDATE footers SET footer = :footer WHERE id = :id");
$stmt->bindParam(':id', $row['id'], PDO::PARAM_INT);
$stmt->bindParam(':footer', $new_url, PDO::PARAM_STR);
$stmt->execute();
}
}

问题是它将在脚本运行时更新一行,然后在下一条记录失败时更新。我有什么遗漏的吗?

最佳答案

我认为问题在于您的提取和更新命令使用相同的变量名称$stmt。此外,您可能会遇到使用相同连接迭代结果并同时更新基础表的问题。

我建议在一个循环中进行获取和 URL 检查,并创建一组要更新的项目。然后在关闭初始获取结果后,在第二个循环中迭代该数组。另外,请在循环外调用一次 prepare,而不是在每次迭代时调用。

关于mysql - PDO 更新行成功然后失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com