0

PHPを使用してMySQL行が存在するかどうかを確認するにはどうすればよいですか?そして、trueまたはfalseを返しますか?

私はこれを試しました:

// Does a game with that url-name exist?
public function nameExist() {
    return $this->db->execute('SELECT COUNT(*) FROM `main_games` WHERE `url`=?', array($this->getSubdomain()));
}

クラスのソースは次のとおりです:http: //pastebin.com/p17gUEPA

そして、これが私がこのクラスを実行するフックのソースです:http: //pastebin.com/WjSNLCMd

4

1 に答える 1

1

executeが返すものを見てみましょう。

成功した場合はTRUEを返し、失敗した場合はFALSEを返します。

したがって、行が0であるがステートメントの実行が成功した場合でも、trueが得られます。できることは、fetchColumn()を使用して実際に行数を取得し、それを返すことです。このようなもの:

public function nameExist() {
    $stmt= $this->db->execute('SELECT COUNT(*) FROM `main_games` WHERE `url`=?', array($this->getSubdomain()));
    return $stmt->fetchColumn() 
}
于 2012-10-24T18:49:15.090 に答える