dtufl26404 2014-06-30 14:35
浏览 24
已采纳

Mysql / PHP PDO语句失败,带有通配符

$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();

Adding the wildcard after $Last_Name is causing the statement to produce no results.

If the value for $Last_Name is Smith that produces a results but only if the wildcard is not there. I have tried the wildcards on both sides and the same thing happens.

No errors are generated.

  • 写回答

2条回答 默认 最新

  • dongzhi9574 2014-06-30 14:37
    关注

    That's because you're not using a LIKE comparison. Wildcards only apply when using LIKE. Since you're doing an equality test (=), you're literally requiring that a % be present in the matched data.

    Try

    SELECT .... AND LastName LIKE :LastName
    

    instead.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程