在此查询中
select wrd from tablename WHERE wrd LIKE '$partial%'
我正在尝试将变量'$partial%'
与PDO绑定。不确定最后的%
如何工作。
会不会
select wrd from tablename WHERE wrd LIKE ':partial%'
其中:partial
绑定到$partial="somet"
还是
select wrd from tablename WHERE wrd LIKE ':partial'
其中:partial
绑定到$partial="somet%"
还是完全不同的东西
7条答案
按热度按时间cwdobuhd1#
你也可以说:
在MySQL端进行字符串连接,在本例中并没有什么特别的原因。
如果您要查找的部分
wrd
本身可能包含百分号或下划线字符(因为这些字符对LIKE操作符有特殊含义)或反斜杠(MySQL将其用作LIKE操作符中的另一层转义-根据ANSI SQL标准,这是不正确的),那么事情就变得有点棘手了。希望这不会影响您,但如果您确实需要正确处理该案例,下面是一个混乱的解决方案:
r8xiu3jd2#
使用问号参数:
http://www.php.net/manual/en/pdo.prepare.php
mzaanser3#
你可以在预准备语句之前使用addcslashes。我在mysql上测试过。
1cklez4t4#
我认为公认的答案(由@bobince)可以简化一点。
您可以将其简化为如下形式,以处理参数中的下划线、百分比等,但仍然匹配带有部分%的LIKE查询:
6yt4nkrj5#
下面的代码只显示了数据库中的第一个关键字!
如果您想从数据库中搜索所有关键字,请尝试此方法
6tqwzwtp6#
你应该这样做
谢谢你,
标准键盘
whhtz7ly7#
谁写了答案(可能是karim79):
使用问号参数:
非常感谢他。我在搜索代码&看到了很多例子,但我不能解决我的问题。这次我成功地做到了。我使用了代码的“使用问号参数:”部分。
为了获得其他帮助,如果要从变量中检索值,可以将代码更改为
代替
因为“部分”这个词已经在答案里写明了,不能更改。谢谢。