prepare("SELECT * FROM skyrim_ingredien-6ren">
gpt4 book ai didi

php - 尝试找出 PHP PDO 准备好的语句和占位符。 MySQL语句的 "IN"子句中的占位符

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

我是 PDO 和准备好的语句的新手。为什么这有效:

$sth = $dbh->prepare("SELECT * 
FROM skyrim_ingredients
WHERE ing_name
IN ('blue butterfly wing', 'blue dartwing', 'blue mountain flower');");
while($row = $sth->fetch()) {
echo $row['ing_id'];
}

...但这不是:

$ing_string = 'blue butterfly wing', 'blue dartwing', 'blue mountain flower';
$sth = $dbh->prepare("SELECT *
FROM skyrim_ingredients
WHERE ing_name
IN (?);");
$sth->bindParam(1, $ing_string);
$sth->execute();
while($row = $sth->fetch()) {
echo $row['ing_id'];
}

我读到不能对表或列使用参数,IN 子句也是这种情况吗?

最佳答案

使用 ? 进行参数替换与变量扩展不同——这就是您在不起作用的情况下所期望的。到达数据库的实际 SQL 可能看起来像 ... IN ("'蓝色蝴蝶翅膀', '蓝色飞镖', '蓝色山花'"),所以它当然行不通。

关于php - 尝试找出 PHP PDO 准备好的语句和占位符。 MySQL语句的 "IN"子句中的占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10221562/

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