【发布时间】:2013-04-23 01:15:19
【问题描述】:
这里是查询:
$stmt = $dbconnect->prepare("SELECT `title`,`description`,`postid` FROM `posttd` WHERE MATCH `title` AGAINST ( ? IN BOOLEAN MODE)");
$stmt->bind_param('s', $value);
$stmt->execute();
$value的值为'test1'、'other'和'test2'
值“其他”是一个 mysql 停用词。因此,当它通过查询时,它会产生任何结果。
只是想知道如何捕捉它,以便我可以将它从$value 数组中取出。
var_dump($stmt->execute()); 将在所有三个上给出bool(true)。
我不希望在查询中运行 $value 之前尽可能过滤停用词。
var_dump($stmt) 在$stmt->execute(); 之后会产生以下结果:
test1 var_dump
object(mysqli_stmt)#2 (9) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(1) ["field_count"]=> int(3) ["errno"]=> int(0) ["error"]=> string(0) "" ["sqlstate"]=> string(5) "00000" ["id"]=> int(1) }
test2 var_dump
object(mysqli_stmt)#2 (9) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(1) ["field_count"]=> int(3) ["errno"]=> int(0) ["error"]=> string(0) "" ["sqlstate"]=> string(5) "00000" ["id"]=> int(3) }
其他 var_dump
object(mysqli_stmt)#6 (9) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(1) ["field_count"]=> int(3) ["errno"]=> int(0) ["error"]=> string(0) "" ["sqlstate"]=> string(5) "00000" ["id"]=> int(2) }
唯一的区别是object(mysqli_stmt)#6
有什么想法吗?
【问题讨论】:
-
你可以用''包装你的参数?
-
您能进一步解释一下吗?你的意思是'SELECT
title,description,postidFROMposttdWHERE MATCHtitle反对(“?”布尔模式)'? -
什么是mysql停用词?
标签: php mysqli stop-words