gpt4 book ai didi

通过 MYSQL php 搜索 phpbb 的 'topic_title',但精确匹配不起作用

转载 作者:行者123 更新时间:2023-11-29 01:01:54 25 4
gpt4 key购买 nike

$sql = sprintf( "SELECT topic_title 
FROM `phpbb_topics`
WHERE `topic_title` LIKE '%%%s%%' LIMIT 20"
, mysql_real_escape_string('match this title')
);

我在 phpMyAdmin 中运行这个查询,结果是:(正确)

match this title
match this title 002

但是当我在 PHP 中运行相同的 MYSQL 查询时,我得到:(不正确)

match this title 002

我还尝试了 MATCH AGAINST,结果与 php 和 phpMyAdmin 相同:

$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";
}

知道我做错了什么吗?

我一直在到处搜索,几乎找不到任何帮助:(

最佳答案

问题是,在执行查询后,您获取了第一行,什么都不做,通过获取第二行进入循环并开始打印结果。

如果删除第一个 $row = mysql_fetch_array($result) , (紧接在 $result = mysql_query($query) or die(mysql_error()); 之后)你应该没问题。

另一条评论;如果你回显一个变量,你不必在它周围放置任何引号。按照您现在的操作方式,您不会在结果之间换行,因此您可能希望将该行更改为 echo $topic_title . "<br>";

关于通过 MYSQL php 搜索 phpbb 的 'topic_title',但精确匹配不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com