gpt4 book ai didi

php - 数据库自动完成功能不起作用

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

我正在使用自动完成,其中建议来自数据库并且工作正常,但是我尝试将其更改为 mysqli 但它不起作用。它不显示任何建议;没有错误。

  1. 我在 mysqli 端缺少什么?
  2. 我怎样才能添加更多 table (我有大约 40 个 table )?谢谢。

MySQL:

 <?php
mysql_connect("localhost","root","");
mysql_select_db("database");

$term=$_GET["term"];

$query=mysql_query("SELECT * FROM products1 where title like '%".$term."%' order by id ");
$json=array();

while($student=mysql_fetch_array($query)){
$json[]=array(
'value'=> $student["title"],
'label'=>$student["title"]
);
}

echo json_encode($json);

?>

我尝试使用 MySQLi 准备好的语句:

<?php
$mydb = new mysqli('localhost', 'root', '', 'database');
$q = $_POST['term'];
$stmt = $mydb->prepare(" SELECT * from products1 where title LIKE ? ");
echo $mydb->error;
$stmt->bind_param('s', $q);
$stmt->execute();
?>
<?php
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$json[]=array(
'value'=> $student["title"],
'label'=>$student["title"]
);


}
echo json_encode($json);

?>

最佳答案

首先,Jonathan 建议在术语中添加通配符('%'),这是正确的。您的错误是在循环中使用变量 $student 而不是 $row (反之亦然)。

<?php
$mydb = new mysqli('localhost', 'root', '', 'test');
$q = '%'.$_POST['term'].'%';
$stmt = $mydb->prepare(" SELECT * from products1 where title LIKE ? ");
echo $mydb->error;
$stmt->bind_param('s', $q);
$stmt->execute();


$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$json[]=array(
'value'=> $row["title"],
'label'=>$row["title"]
);
}
echo json_encode($json);

?>

附注:首先确保您的查询有效。而且,您在 $row['columnName'] 中使用的列实际上存在。

关于php - 数据库自动完成功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796171/

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