繁体   English   中英

Mysql / PHP PDO语句以通配符失败

[英]Mysql/PHP PDO statement failing with wildcard

$pdo = $db_con->prepare("SELECT COUNT(*) FROM table WHERE Age=:Age AND ClientID=:ClientID AND LastName=:LastName"); 
$pdo->bindValue(':Age', $_SESSION['Age']);
$pdo->bindValue(':ClientID', $ID);
$pdo->bindValue(':LastName', $Last_Name."%");
$pdo->execute();

在$ Last_Name之后添加通配符会使该语句不产生任何结果。

如果$ Last_Name的值是Smith,但仅当通配符不存在时才产生结果。 我已经尝试了两边的通配符,并且发生了相同的事情。

没有错误产生。

那是因为您没有使用LIKE比较。 通配符仅在使用LIKE时适用。 由于您正在执行相等性测试( = ),因此您实际上要求匹配的数据中包含%

尝试

SELECT .... AND LastName LIKE :LastName

代替。

您想使用LIKE:

SELECT COUNT(*) FROM table WHERE Age=:Age AND ClientID=:ClientID AND LastName LIKE :LastName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM