0

MYSQL データベースからデータを取得する php ファイルがあります。これまでの私のコードは次のとおりです。

<?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 に答える