您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

PDO和MySQL全文搜索

PDO和MySQL全文搜索

不幸的是,这是使用查询参数的一个奇怪的例外( 但显然不在每个MysqL分支的最新版本中,请参见下文)。

中的模式AGAINST() 必须 是常量字符串,而不是查询参数。与SQL查询中的其他常量字符串不同,您不能在此处使用查询参数,这仅仅是因为MysqL的限制。

要将搜索模式安全地插入查询中,请使用PDO :: quote()函数。请注意,PDO的quote()函数已经添加了引号定界符(与MysqL_real_escape_string()不同)。

$quoted_search_text = $this->db->quote('+word +word');

$sql = $this->db->prepare("SELECT ... FROM search_table 
    WHERE MATCH(some_field) AGAINST($quoted_search_text IN BOOLEAN MODE");

来自@YourCommonSense的评论

没错,我刚刚在MysqL 5.5.31、5.1.68和5.0.96(MysqL Sand@R_882_2419@是一个很棒的工具)上进行了测试,看来这些版本确实接受aAGAINST()子句中的查询参数动态SQL查询

我仍然回想起过去存在的冲突。也许已在每个分支机构的最新发行版中对其进行了更正。例如,我发现这些相关的错误

MySQL 2022/1/1 18:14:09 有701人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶