Search 搜索phpbb';s';题目';通过MYSQL php,但精确匹配不会';行不通
我在phpMyAdmin中运行此查询,结果如下:(正确) 但当我在PHP中运行相同的MYSQL查询时,我得到:(不正确) 我还尝试使用php和phpMyAdmin进行匹配,结果相同:Search 搜索phpbb';s';题目';通过MYSQL php,但精确匹配不会';行不通,search,mysql,phpbb,Search,Mysql,Phpbb,我在phpMyAdmin中运行此查询,结果如下:(正确) 但当我在PHP中运行相同的MYSQL查询时,我得到:(不正确) 我还尝试使用php和phpMyAdmin进行匹配,结果相同: match this title 002 im用于搜索的整个代码块: $sql = "SELECT topic_title FROM phpbb_topics WHERE MATCH (topic_title) AGAINST('match
match this title 002
im用于搜索的整个代码块:
$sql = "SELECT topic_title
FROM phpbb_topics
WHERE MATCH (topic_title)
AGAINST('match this title' IN BOOLEAN MODE)";
知道我做错了什么吗
我一直在到处搜索,几乎没有找到任何帮助:(问题是,在执行查询后,您获取第一行,不做任何处理,通过获取第二行进入循环,然后开始打印结果 如果删除第一个
$row=mysql\u fetch\u数组($result)
,(直接在$result=mysql\u query($query)或die(mysql\u error());
)之后,您应该不会有问题
另一个注释;如果您回显一个变量,则不必在其周围放置任何qoutes。按照您现在的方式,结果之间不会有换行符,因此您可能希望将该行更改为
echo$topic\u title。“
”;
问题是,在执行查询后,获取第一行,不做任何处理,通过获取第二行进入循环并开始打印结果
如果删除第一个$row=mysql\u fetch\u数组($result)
,(直接在$result=mysql\u query($query)或die(mysql\u error());
)之后,您应该不会有问题
另一个注释;如果您回显一个变量,则不必在其周围放置任何qoutes。按照您现在的方式,结果之间不会有换行符,因此您可能希望将该行更改为
echo$topic\u title。“
”
啊,是的,只是对bash和php有点混淆,就像bash一样,你几乎总是需要引号。但是正确地使用引号并没有什么坏处吗?我还添加了标记,因为我看到两个结果作为一个长句出现:p(干杯!)不,引号不会有什么坏处。这是风格的问题。我更喜欢把我所有的变量都放在引号之外。啊,是的,只是在bash和php之间有点混淆,就像bash一样,你几乎总是需要引号。但是正确使用引号并没有什么坏处吗?我还添加了
标记,因为我看到两个结果作为一个长句出现:P(干杯!)不,引号没有坏处。这是风格的问题。我更喜欢把我所有的变量都从引号中去掉。
match this title 002
$sql = "SELECT topic_title
FROM phpbb_topics
WHERE MATCH (topic_title)
AGAINST('match this title' IN BOOLEAN MODE)";
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("phpbb") or die(mysql_error());
$query = "match this title";
$query = "SELECT topic_title
FROM phpbb_topics
WHERE MATCH (topic_title)
AGAINST('$query' IN BOOLEAN MODE)";
// Doesn't work (these 2 both give the same result "match this title 002" and no the "match this title")
// $query = "SELECT * FROM `phpbb_topics`
// WHERE `topic_title`
// LIKE '%$query%'
// LIMIT 0, 30 "; // Doesn't work
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$topic_title = $row['topic_title'];
echo "$topic_title";
}