php pdo 怎么循环,php – 在循环内绑定PDO语句的参数

在PHP中使用PDO预处理语句时,遇到一个问题:通过foreach循环绑定参数到SQL查询失败,导致数据插入错误。原始代码尝试通过索引数组进行bindParam操作,而正确的方法是直接指定参数位置。当改用逐个绑定参数的方式时,代码运行正常。这个问题可能源于bindParam的使用方式和循环中变量引用的混淆。
摘要由CSDN通过智能技术生成

我试图在一个循环中绑定SQL查询的参数:

$db = new PDO('mysql:dbname=test;host=localhost', 'test', '');

$stmt = $db->prepare('INSERT INTO entries VALUES (NULL, ?, ?, ?, NULL)');

$title = 'some titile';

$post = 'some text';

$date = '2010-whatever';

$reindex = array(1 => $title, $post, $date); // indexed with 1 for bindParam

foreach ($reindex as $key => $value) {

$stmt->bindParam($key, $value);

echo "$key$value"; //will output: 1some titile2some text32010-whatever

}

以上代码在所有3个字段2010中插入到数据库中 – 无论如何。

这一个工作正常:

$stmt->bindParam(1, $title);

$stmt->bindParam(2, $post);

$stmt->bindParam(3, $date);

所以,我的问题是为什么foreach循环中的代码失败,并在字段中插入错误的数据?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值