当前位置:Gxlcms > PHP教程 > 为什么连接了mysql却查询不了,该怎么处理

为什么连接了mysql却查询不了,该怎么处理

时间:2021-07-01 10:21:17 帮助过:8人阅读

为什么连接了mysql却查询不了
表单页代码:
PHP code
  1. <!--
  2. Code highlighting produced by Actipro CodeHighlighter (freeware)
  3. http://www.CodeHighlighter.com/
  4. -->
  5. catalog search
  6. <h2>catalog search</h2>


PHP code
  1. <!--
  2. Code highlighting produced by Actipro CodeHighlighter (freeware)
  3. http://www.CodeHighlighter.com/
  4. -->
  5. <h2>search results</h2>
  6. <!--?php
  7. $searchtype=$_POST['searchtype'];
  8. $searchterm=trim($_POST['searchterm']);
  9. if(!$searchtype||!$searchterm){
  10. echo"请输入值";
  11. exit;
  12. }
  13. if(!get_magic_quotes_gpc())
  14. {
  15. $searchtype=addslashes($searchtype);
  16. $searchterm=addslashes($searchterm);
  17. }
  18. @ $db=new mysqli('localhost','root','root','books');
  19. if (mysqli_connect_errno())
  20. {
  21. echo 'Error: Could not connect to database. Please try again later.';
  22. exit;
  23. }
  24. $query="select * from books where".$searchtype."like '%".$searchterm."%'";
  25. $result=$db--->query($query);
  26. $num_results=$result->num_rows;
  27. echo "<p>Number of books found:".$num_results."</p>";
  28. for ($i=0;$i<$num_results;$i++)
  29. {
  30. $row=$result->fetch_assoc();
  31. echo"<p><strong>".($i+1)."title:";
  32. echo htmlspecialchars(stripslashes($row['title']));
  33. echo "</strong><br>author:";
  34. echo stripslashes($row['author']);
  35. echo"<br>isbn:";
  36. echo stripslashes($row['isbn']);
  37. echo"<br>price:";
  38. echo stripslashes($row['price']);
  39. echo"</p>";
  40. }
  41. ?>


输出结果:

search results
Number of books found:

为什么查询不出结果

------解决方案--------------------
你没有在执行查询后进行检错,应补上
1、确认 $searchtype 是正确的字段名
2、$query="select * from books where".$searchtype."like '%".$searchterm."%'";
中 like 前少了个空格
写成这样是不是清爽些?
$query = "select * from books where $searchtype like '%$searchterm%'";


------解决方案--------------------
$query="select * from books where".$searchtype."like '%".$searchterm."%'";
echo $query;就知道是否等价了。 红字部分连在一起了还对吗?
------解决方案--------------------
$query="select * from books where".$searchtype."like '%".$searchterm."%'";
$query = "select * from books where $searchtype like '%$searchterm%'";
这两个sql是有区别的。
""里面的都是字符串,然后你没有空格直接写.$searchtype。。。。你自己想想结果一样吗?

人气教程排行