gpt4 book ai didi

PHP PDO bindValue 使用 MySQL IN()?

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

我的这个查询没有返回任何内容。它不会抛出任何错误。在该网站上找不到解决方案。这里出了什么问题?

$query = "SELECT * FROM `votes` WHERE `tags` IN (:tags)";
$stmt = $dbh->prepare($query);
$stmt->bindValue(':tags', 'one, two, three');
$stmt->execute();
// 0 results, should be more

最佳答案

无论您使用bindParam()还是bindValue(),这都不会达到您想要的效果。

SQL 查询参数仅取代一个值。您不能绑定(bind)包含逗号的字符串并将其解释为多个值。您需要为列表中的每个不同值使用一个参数占位符。

此外,您根本不需要使用 PDO 绑定(bind)参数值。您可以将数组传递给execute()。在这种情况下,我将使用位置参数而不是命名参数。 PDO 支持两者,但不要将它们混合在一个查询中。

$query = "SELECT * FROM `votes` WHERE `tags` IN (?, ?, ?)";
$stmt = $dbh->prepare($query);
$params = explode(', ', 'one, two, three');
$stmt->execute($params);

关于PHP PDO bindValue 使用 MySQL IN()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13488423/

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