0

我有一个 php 文件从 MYSQL 数据库中获取一些数据。到目前为止,这是我的代码:

<?php
    include 'DB.php';
    $connection=mysql_connect(DB_SERVER,DB_USER,PASS);
    $db=mysql_select_db(DB_Name);
    $sql="select * from lookup where id = ".$_GET['id'];
    $res=mysql_query($sql) or die(mysql_error());
    while($row=mysql_fetch_array($res))
        {
        echo $row['message'];
        }
?>

我必须添加什么,以便如果没有数据,就会出现错误消息?我在猜测 If/else 语句,但我不确定如何将其与 while 语法相匹配。有什么帮助吗?

4

3 回答 3

1
$res = mysql_query(...) ...;
if (mysql_num_rows($res) == 0) {
   die("Hey, nothing here!");
}

除此之外:

a) 你完全容易受到SQL 注入攻击。在你继续之前停止你的编码项目并了解它们。

b) 停止使用 mysql_*() 函数。它们已被弃用。

于 2012-09-20T20:13:24.637 回答
0

您可以使用$count = mysql_num_rows($res);来获取返回的行数。然后,您可以使用 if 语句来显示任何错误。

于 2012-09-20T20:14:02.673 回答
0

我做了上面提到的:

$query = "select * from lookup where id = ".$_GET['id'];
$result = mysql_query($query) or die ("Error in query: $query " . mysql_error());
$num_results = mysql_num_rows($result);
if ($num_results == 0){
echo "nothing here</br>";
}
else{
echo "<b> $num_results </b> result(s) match your query</br>";
while($row=mysql_fetch_array($res))
    {
    echo $row['message'];
    }

您当然可以不使用“echo $num_results...”,但是您可以在此处给出结果的数量,这有时非常有用。

于 2012-09-20T20:27:27.657 回答