-1

次の関数は、このテーブルのこの行が存在するかどうかを確認するように設計されています。私$rowか!かはまだわかりません。$rowif関数は何もしません。

function four_zero_four($name){
    $four_zero_four = mysql_query("SELECT * FROM pages WHERE name = '$name'"); 

    while($row = mysql_fetch_array($four_zero_four)) { 
      echo 'no'; die(); 
    }
};

$name行の名前フィールドであり、他の関数で正しく機能しています。

4

3 に答える 3

1

行が存在するかどうかを確認する別の方法は、mysql_result 関数を関数と組み合わせて使用​​することですCOUNT

$query = mysql_query("SELECT COUNT(1) FROM `table` WHERE `field` = 'something'");
$result = mysql_result($query, 0);

変数を出力$resultすると、クエリによって実際に返される行の量がわかります。これは通常、 を使用するよりも高速ですmysql_num_rows

于 2012-06-18T14:50:45.040 に答える
0

論理がよくわかりません。「いいえ」と印刷していませんか。行が見つかったときではなく、行が見つかったときのdie()?いずれにせよ、これが私がチェックする方法です:

function four_zero_four($name){
    $four_zero_four = mysql_query("SELECT * FROM pages WHERE name = '$name'"); 

    if (mysql_num_rows($four_zero_four) == 0) {
        // ROW DOES NOT EXIST
    } else {
        // ROW EXISTS
    }
};
于 2012-06-18T14:49:09.310 に答える
0

クエリによって返される行がない場合は実行されないため、コードは機能しません。

mysql_num_rows()代わりに使用してください:

$count = mysql_num_rows($four_zero_four);

if($count <= 0){
    die("no rows in this table!");
}

mysql_query()また、廃止されたため、古い実装との代わりにMYSQLiコマンドを使用することを検討する必要がありますSELECT *

于 2012-06-18T14:49:20.937 に答える