gpt4 book ai didi

php - 当 PHP 中的数据库没有任何内容可获取时如何显示错误

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

下面的代码用于在 Sql 查询返回结果时显示从数据库获取的表行。

<?php
if(isset(['submit']))
{
$key=$_POST['txt_srchKey'];
}



if($key!="")
{
$all_entries=mysql_query("SELECT * FROM tbl_book WHERE bookAuthor='$key'|| bookName='$key'||bookCode='$key' ");
?>
<table border=1 align="left">
<tr>
<td><b>Book Code</b></td><td><b>Book Name</b></td><td><b>Edition</b></td><td><b>Author</b></td>
</tr>
<?php
while($row=mysql_fetch_array($all_entries))
{ ?>

<tr>
<td><?php echo $row['bookCode'] ?></td>
<td><?php echo $row['bookName'] ?></td>

<td><?php echo $row['bookEdition'] ?></td>
<td><?php echo $row['bookAuthor'] ?></td>
</tr>
<?php
}
?>
</table>

当条件 (bookAuthor='$key'|| bookName='$key'||bookCode='$key') 为 true 时,我在表中得到结果。但如果没有结果,则仅显示表格标题例如:图书代码、图书名称等。但我需要显示“未找到结果”。如何通过编辑代码来做到这一点?

最佳答案

无需立即陷入代码问题,您可以使用 mysql_num_rows .

<?php
if(isset(['submit']))
{
$key=$_POST['txt_srchKey'];
}
if($key!="")
{
$all_entries=mysql_query("SELECT * FROM tbl_book WHERE bookAuthor='$key'|| bookName='$key'||bookCode='$key' ");
if(mysql_num_rows($all_entries) > 0)
{
?>
<table border=1 align="left">
<tr>
<td><b>Book Code</b></td><td><b>Book Name</b></td><td><b>Edition</b></td><td><b>Author</b></td>
</tr>
<?php
while($row=mysql_fetch_array($all_entries))
{
?>
<tr>
<td><?php echo $row['bookCode'] ?></td>
<td><?php echo $row['bookName'] ?></td>
<td><?php echo $row['bookEdition'] ?></td>
<td><?php echo $row['bookAuthor'] ?></td>
</tr>
<?php
}
?>
</table>
<?php
}
else
{
?><p>No result found</p><?php
}
}

关于这段代码,我应该注意一些事情:

<小时/>

问题 1

该行无效:

if(isset(['submit']))

我认为你的意思是使用:

if(isset($_POST['submit']))
<小时/>

问题 2

此 SQL 语句对 SQL 注入(inject)是开放的:

mysql_query("SELECT * FROM tbl_book WHERE bookAuthor='$key'|| bookName='$key'||bookCode='$key' ")

您可以使用 mysql_real_escape_string 来提高安全性当您像这样设置 $key 时:

$key=mysql_real_escape_string($_POST['txt_srchKey']);

但是,这并不是在所有情况下都是完美的解决方案,这就是我的最后一点。

<小时/>

问题 3

mysql_query 和所有其他 mysql_* 在最新版本的 PHP 中已被弃用。请参阅 mysql_query page 上的警告和 MySQL: choosing an API了解更多信息。您可能需要考虑使用 MySQLi 或 PDO,因为在这些扩展中进行安全数据库查询要容易得多。

关于php - 当 PHP 中的数据库没有任何内容可获取时如何显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24967588/

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