2

これが私のコードです:

$result_username = mysqli_query($dbconnection, Data::checkForUsername($username));

それはここに行きます:

   public static function checkForUsername($username) {
            global $database;

            $query = "
                SELECT COUNT(*) 
                FROM users 
                WHERE username='{$username}';";

            $result = $database -> query($query);

            return $result;
        }

次に $result はこれを行います:

if (mysqli_result($result_username, 0) > 0) {

ただし、その後、Resource_Id が返されますか?? 私はなぜ理解できないのですか?

ユーザー名が少なくとも1行に存在するかどうかを確認したいだけです。

4

2 に答える 2

3

クエリを実行した後、データを取得する必要があります

$row = $result->fetch_array(MYSQLI_NUM);
return $row[0];

更新:さて、準備されたステートメントを使用すると、関数は次のようになります。

public static function checkForUsername($username) {
    global $database;

    $result = 0;
    $query = "SELECT COUNT(*) FROM users WHERE username=?";
    /* create a prepared statement */
    if ($stmt = $database->prepare($query)) {
        /* bind parameters for markers */
        $stmt->bind_param("s", $username);
        /* execute query */
        $stmt->execute();
        /* bind result variable */
        $stmt->bind_result($result);
        /* fetch value */
        $stmt->fetch();
        /* close statement */
        $stmt->close();
    }
    return $result;
}
于 2013-02-16T03:10:40.283 に答える
1

あなたが試すことができます

return $result->num_rows

それで

if (checkForUsername('Redeyes') != 0) {
}
于 2013-02-16T03:11:29.927 に答える