如何使用bindvalue和%准备语句?

Kar*_*rem 2 sql pdo bindvalue

是的,当我尝试在之前看起来像这样的变量上使用bindvalues时,我遇到了问题:

users.firstname LIKE '$firstname%'
Run Code Online (Sandbox Code Playgroud)

现在它看起来像这样:

users.firstname LIKE ':firstname%'
Run Code Online (Sandbox Code Playgroud)

但它不起作用,也试过这个:

users.firstname LIKE :firstname%
Run Code Online (Sandbox Code Playgroud)

并得到一些语法错误..

对此有什么正确的解决方案?我还想在bindValue中添加%(:firstname,$ firstname%),但我还需要在其他地方使用:firstname,不应该有%..

谢谢你

irc*_*ell 5

好的,添加%到绑定值:

users.firstname LIKE :firstname
Run Code Online (Sandbox Code Playgroud)

然后

$stmt->bindValue(':firstname', $firstname . '%');
Run Code Online (Sandbox Code Playgroud)

但是,既然你说你需要:firstname在其他地方使用,只需将这个实例命名为不同的东西:

users.firstname LIKE :firstnamewild
Run Code Online (Sandbox Code Playgroud)

然后

$stmt->bindValue(':firstnamewild', $firstname . '%');
Run Code Online (Sandbox Code Playgroud)