2

これはとてつもなく単純に思えるかもしれませんが、何も返さないクエリの処理方法によっては、あらゆる種類のエラーが発生しています。

$query = "SELECT * FROM messages WHERE id > ".$messageId;
$result =mysql_query($query);
$time = time();
while(time()-$time<60 && $result==false)
{
    $result = mysql_query($query);
}
if(result != false)
     //Encode response
else
     //return nothing

mysql_query() が何かを返したかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

2

mysql_num_rows()を使用して、返された行数を確認できます。

ループが結果を得るまで何かを照会することであると仮定すると、次のようになります。

while(time()-$time<60 && $num_rows == 0)
{
    $result = mysql_query($query);
    $num_rows = mysql_num_rows($result); 

(データベースサーバーにひどい負担をかける可能性があるため、ここで行っていることが本当に良いアイデアかどうかはわかりませんが、それは別の問題です)

mysql_query()falseは、クエリのスペルミスや接続の切断など、「実際の」エラーでのみ返されます。

于 2010-04-10T17:01:20.160 に答える