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

php中文网
发布: 2016-06-13 13:44:34
原创
1745人浏览过

为什么连接了mysql却查询不了
表单页代码:

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><html>
<head>catalog search</head>
<body>
<h1>catalog search</h1>
<form action="results.php" method="post">
choose search type:<br/>
<select name="searchtype">
<option value="author">author</option>
<option value="title">title</option>
<option value="isbn">isbn</option>

</select>
<br/>
enter search term:<br/>
<input name="searchterm" type="text" size="40"/>
<br/>
<input  type="submit" name="submint" value="search"/>
</form>
</body>

</html>
登录后复制


PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><html>
<body>
<h1>search results</h1>
<?php
$searchtype=$_POST['searchtype'];
$searchterm=trim($_POST['searchterm']);
if(!$searchtype||!$searchterm){
    echo"请输入值";
        exit;

}
if(!get_magic_quotes_gpc())
{
    $searchtype=addslashes($searchtype);
    $searchterm=addslashes($searchterm);
}
@ $db=new mysqli('localhost','root','root','books');
if (mysqli_connect_errno()) 
{
echo 'Error: Could not connect to database. Please try again later.';
exit;
}

$query="select * from books where".$searchtype."like '%".$searchterm."%'";
$result=$db->query($query);
$num_results=$result->num_rows;
echo "<p>number of books found:".$num_results."</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/ai/900">
                            <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679989420709.png" alt="知了zKnown">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/ai/900">知了zKnown</a>
                            <p>知了zKnown:致力于信息降噪 / 阅读提效的个人知识助手。</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="知了zKnown">
                                <span>65</span>
                            </div>
                        </div>
                        <a href="/ai/900" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="知了zKnown">
                        </a>
                    </div>
                ";
for ($i=0;$i<$num_results;$i++)
{
    $row=$result->fetch_assoc();
    echo"<p><strong>".($i+1)."title:";
    echo htmlspecialchars(stripslashes($row['title']));
    echo "</strong><br/>author:";
    echo stripslashes($row['author']);
    echo"<br/>isbn:";
    echo stripslashes($row['isbn']);
    echo"<br/>price:";
    echo stripslashes($row['price']);
    echo"</p>";
}
?>
</body>
</html>
登录后复制


输出结果:

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。。。。你自己想想结果一样吗?
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号