3

これが私のスニペットです。

エラーに似た他の質問をいくつか確認しましたが、これまでのところ解決できません。

<?php 
function user_exists ($username) {
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username =  $username"), 0) == 1) ? true : false;
}
?>
4

2 に答える 2

3

これらのエラーや特殊なケースを処理するには、コードをさらに数行に分割する必要があります。mysql_queryゼロからn行を返すか、発生した場合はエラーを返します。したがって、返されるリソースは、エラー以外のクエリでのみtrueになります。これは、次のような状況を処理するために使用できます。

最初にクエリを作成して実行し、次にリソースを処理します。

$query="SELECT COUNT(user_id) FROM users WHERE username = ".$username;
$result = mysql_query($query);  

uは、エラーが発生した場合に何が起こっているかを判断するために、以下を使用できます。

if(!$result) die("SELECT failed: ".mysql_error());

または問題を処理するためのこれらのアイデア

if (!$result=mysql_query($query)) {
        return false; // or similar operation
    }

    if (mysql_num_rows($result)!=1){
        return false;
    }else{
        return true;
    }
于 2012-12-03T00:13:33.680 に答える
0

これはmysql_query、何らかの理由で失敗した場合に、false を返すときに発生する可能性があります。したがって、これを複数のステートメントに分割し、戻り値を確認する必要があります

$sql = "SELECT COUNT(user_id) FROM users WHERE username =  $username";
$result = mysql_query($sql);
if ($result === false) {
    // error handling
    return false;
}

return (mysql_result($result, 0) == 1) ? true : false;
于 2012-12-02T23:47:52.580 に答える