2015-05-14 74 views
1

MySQL版本:5.5.43-0ubuntu0.12.04.1PHP PDO和MySQL AGAINST()函数

我有一个运行

MATCH(title) AGAINST('+:word_1 :word_2' IN BOOLEAN MODE)

查询我无法得到它遵守PDO参数。我试图用'?'的占位符格式化它,但没有成功。

只要我跑明文,查询精细运行:

MATCH(title) AGAINST('+cat hat' IN BOOLEAN MODE) 

PDO参数是我的首选数据库,确保传入的文本的方法是安全的,我很想有这个工作,如果没有别的,一致性。

有什么建议吗?

+2

PDO无法绑定在引号内。 – Devon

回答

3
MATCH(title) AGAINST(? IN BOOLEAN MODE) 

然后

$stmt->execute([ '+' . $word_1 . ' ' . $word_2 ]); 

换句话说,您连接'+'$word_1,并$word_2在一起,并且整个字符串进行绑定。

+0

我的印象是“AGAINST”发送的所有内容都必须加引号。连接是完美的解决方案。欢呼 – Jared

+0

@cjaredrun,是的,当它是一个字符串。但是,当您在准备好的语句中绑定字符串时,引号将自动添加。 – Devon

+0

,使世界上的所有感。 – Jared