gpt4 book ai didi

php - PDO Prepared stament while in a loop

转载 作者:行者123 更新时间:2023-12-01 00:23:58 24 4
gpt4 key购买 nike

这是一件很简单的事情,但由于某种原因我真的很难做到。基本上,我做一个选择语句来查找结果。我遍历该结果并更新我在结果中找到的项目。

这是我的代码:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stmt = $pdo->prepare("select * from licenses where email='empty' limit $quantity");
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);


if ($stmt->rowCount() > 0)
{
$stmt = $pdo->prepare("update licenses set email=:em, exp_date=:exp where 'id'=:id");

foreach ($row as $row)
{
$expires = date("Y-m-d", strtotime('+365 days'));
$license = $row['license_key'];
$lid = $row['id'];

echo $license . '<br> ID:' . $lid;

$stmt->bindValue(':em', $email1, PDO::PARAM_STR);
$stmt->bindValue(':exp', $expires, PDO::PARAM_STR);
$stmt->bindValue(':id', $lid, PDO::PARAM_INT);

$stmt->execute();
}

此代码有效,它更新了我的处于工作状态的数据库。但是,该网站返回 504 错误并且未显示许可证的输出。有谁知道这段代码有什么问题,或者我怎样才能完成我的目标任务?

** 编辑:当我使用 fiddler 时,出现此错误:[Fiddler] ReadResponse() 失败:服务器未返回对此请求的响应。

最佳答案

好吧,我不敢相信我们都错过了这个。在您的更新查询中,您在 where 子句中使用表达式 'id'=:id 。这实际上意味着如果您的 $id 是 15 -> 'id' != 15 并且查询将永远不会更新表中的任何值。删除 id 周围的引号:

$stmt = $pdo->prepare("update licenses 
set email=:em, exp_date=:exp where id=:id");

关于php - PDO Prepared stament while in a loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418696/

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