gpt4 book ai didi

php - 使用 PHP 和数组进行 PDO 更新

转载 作者:行者123 更新时间:2023-11-30 00:21:59 25 4
gpt4 key购买 nike

我有一个更新语句,应该更新数据库中商品的价格,因为商品数量可能会有所不同,我尝试使用数组,然后循环遍历该数组。我已经仔细检查了所有输入两次,但似乎无法确定问题,基本上没有任何更新!

这是我在 POST 请求中发送给表单处理器的内容

itemid[]    8
itemid[] 3
itemid[] 12
itemid[] 4
itemid[] 13
itemid[] 5
itemid[] 10
itemid[] 6
itemid[] 9
itemid[] 7
itemid[] 2
itemid[] 15
itemid[] 11
itemid[] 14
itemid[] 1
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
price[] 1
price[] 0.0
price[] 0.0
price[] 0.0
price[] 0.0
shopid 3
tag prices

和我的处理代码

else if($tag == 'prices')
{
$shopid = $_POST['shopid'];
$itemid = $_POST['itemid'];
$price = $_POST['price'];


foreach($itemid as $key => $n)
{
$db = new PDO('mysql:host=localhost;dbname=servershop', '$user', '$pass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db->prepare("UPDATE prices SET price = ? WHERE item_id = ? and shop_id = ?");
$stmt->bindValue(1, $price[$key]);
$stmt->bindValue(2, $n);
$stmt->bindValue(3, $shopid);
$stmt->execute();
}
}

最后是我应该更新的表格:

shop_id(int),item_id(int),price(double)
3,1,0
3,2,0
3,3,0
3,4,0
3,5,0
3,6,0
3,7,0
3,8,0
3,9,0
3,10,0
3,11,0
3,12,0
3,13,0
3,14,0
3,15,0

我有 PHP 错误和 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);已启用,但 Firebug 控制台中未显示任何错误。

谁能指出我哪里犯了错误吗?

谢谢

最佳答案

有趣的是我无法发表评论。我不知道您使用的是哪个版本的 PHP,但我注意到的一件事是:

'$user', '$pass'

如果这是实际的代码,那么这些变量可能没有被插入。根据我的理解,单引号内的值通常不会扩展。可能是您与数据库的连接失败(例如尝试使用文字“$user”和“$pass”进行连接)。

此外,您实际上只需要准备一次语句并在循环中重新绑定(bind)参数。

关于php - 使用 PHP 和数组进行 PDO 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23160557/

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