无法在mysqli中获得搜索结果

空值

我是这里的新用户,我的搜索结果有问题。我目前正在建立一个具有搜索帖子功能的网站。它与mysql正常工作。然后我读到有关PHP的信息,它将删除一些旧功能。所以我试图从mysql转换为mysqli,但出现了很多错误。我不知道该怎么办,因为我在这里和Google尝试了很多建议,但仍然无法正常工作。(title, keywords)我的表中只有2个字段(search_table)'title'如果用户搜索任何内容,就会出现我需要的结果'keywords'

我的表格:

<form name="search_form" action="search.php" method="post">
<input type="text" name="search_posts" placeholder="Search for posts" size="20" maxlength="50"/>
<input type="submit" name="submit" value="Search" />
</form>

我的工作mysql:

<?php
$host='localhost';
$mysql_username='root';
$mysql_password='';
$database='my_db';
$connection_error='<b>Unable to connect to the database!</b>';
if(!@mysql_connect( $host , $mysql_username , $mysql_password ) || !@mysql_select_db($database))
{
die ($connection_error);
}

$search = mysql_real_escape_string(trim($_POST['search_posts']));
$find_posts = mysql_query("SELECT * FROM `search_table` WHERE `keywords` LIKE '%$search%'") ;
$count = mysql_num_rows($find_posts);
if($count == 0){
    echo 'There are no search result!';
} else {
while($row = mysql_fetch_assoc($find_posts))
{
    $title = $row['title'];
    $keywords = $row['keywords'];
    echo "<a href='#'>$title</a> >>> $keywords<br />";
}
}
?>

转换后的mysqli(问题):

<?php
$host = 'localhost';
$mysql_username = 'root';
$mysql_password = '';
$my_database = 'my_db';
$mysqli = new mysqli($host,$mysql_username,$mysql_password,$my_database);
if($mysqli->connect_errno) {
    printf("Connection to database failed: %s\n", $mysqli->connect_error);
    exit(); 
}

$search_posts = $mysqli->real_escape_string(trim($_POST['search_posts']));
$find_posts = $mysqli->query("SELECT * FROM `search_table` WHERE `keywords`='?'") or die($mysqli->error.__LINE__);

if($count == 0) {
echo 'NO SEARCH RESULTS FOUND!';
}
else {
while($row = $find_posts->fetch_assoc())
{
    $title = $row['title'];
    $keywords = $row['keywords'];
    echo "<a href='#'>$title</a> >>> $keywords<br />";
}
}
$mysqli->close();
?>

P / S:对不起,我的英语不好。我希望你们能以简单的方式帮助我或向我解释,因为我在该领域没有太多知识(自学成才和错误的东西^ _ ^)。如果你们有更好的解决方案,我将不胜感激,只要它能与旧版本兼容即可。提前致谢。

周杰伦

当您输入“?”时 在查询中,这就是您执行“准备好的语句”的方式。但是,(a)mysqli-> query函数不执行准备好的语句,而是执行普通的旧式单发语句。并且(b)即使这样做,也永远不会将值绑定到“?”。因此,您正在搜索关键字等于文字问号的记录。

您可以像使用旧MySQL一样进行查询,将参数构建为字符串:

$find_posts = $mysqli->query("SELECT * FROM `search_table`
  WHERE keywords like '%$search_posts%'");

或者,您可以将其作为准备好的语句来执行:

$pq =$mysqli->prepare("SELECT * FROM `search_table`
  WHERE keywords like ?");
$pq->bind_param('i', '%' . $search_posts . '%');
$pq->execute();
$find_posts=$pq->get_result();

还要注意,将测试从LIKE更改为=将会改变结果。您可能不想这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法获得结果以显示在python应用中

来自分类Dev

无法从MySQL查询中获得所需的结果

来自分类Dev

使用表格搜索mysqli表并显示结果

来自分类Dev

无法获得眼前的结果?

来自分类Dev

无法显示Java查询中的搜索结果

来自分类Dev

无法在mysql中通过group by获得正确的结果

来自分类Dev

无法按照MTM中列出的正确顺序获得测试结果

来自分类Dev

通过Mysqli搜索期间无结果

来自分类Dev

在Python中搜索csv文件无法获得结果

来自分类Dev

使用elastic4s在搜索中获得零结果

来自分类Dev

无法从角度服务中获得承诺结果

来自分类Dev

无法从NSURL获得结果

来自分类Dev

无法从data.table的“ j”参数中获得相同的结果

来自分类Dev

在react-testing-library中无法从.toHaveBeenCalledTimes()获得预期结果

来自分类Dev

如何从搜索中获得结果URL?

来自分类Dev

在django搜索中未获得结果,但是单个搜索工作正常

来自分类Dev

无法在JavaScript中读取Google客户搜索结果对象的结果

来自分类Dev

无法在JS Web Scraping Cheerio中获得结果

来自分类Dev

无法从mysql查询中获得不同的结果?

来自分类Dev

访问网站并获得搜索结果

来自分类Dev

使用Rails 3无法获得正确的搜索结果

来自分类Dev

无法从NSURL获得结果

来自分类Dev

php-mysqli - 在 sql 查询中,如果搜索 ID,如何获得此结果上方 5 行和下方 5 行

来自分类Dev

无法在跨列的行中获得结果

来自分类Dev

如何在搜索列表中首先获得同名结果 iOS

来自分类Dev

试图获得非对象 Mysqli 结果的属性

来自分类Dev

无法从谷歌搜索中获取文章结果

来自分类Dev

在弹性搜索中无法仅获得命中数

来自分类Dev

如何从弹性搜索查询中获得准确的搜索结果

Related 相关文章

热门标签

归档