0

以下のコードを使用して、mysqliを使用してmysqlデータベースとphptestというテーブルにアクセスしようとしています。行が=0か何か他のものであるかどうかを確認しようとしていますが、何もエコーしません。コードの何が問題になっていますか?

$mysqli = new mysqli("localhost", "root", "", "phptest");
if (!$mysqli) {
    echo "Can't connect to MySQL Server. Errorcode: %s\n". mysqli_connect_error();
    exit;
}
$query = "SELECT `id` FROM `test` WHERE `email`='example@hotmail.com' AND `password`='5f4dcc3b5aa765d61d8327deb882cf99'";
$query_run = $mysqli->query($query);
$row_cnt = $query_run->num_rows;
if ($row_cnt==0) {
    echo 'wrong..';
} else {
    echo 'correct!';
}

編集: ifステートメントの変数を編集しました。表のmysqlパネルで直接クエリを実行しました。次に、正しい行数を取得します。なぜphpで動作しないのですか?

4

2 に答える 2

1

未定義の変数をチェックしていますが$row_count(これは$row_cnt、当面の問題ではありません(これを修正する必要があります)、次のいずれかの理由で致命的なエラーが発生します。

  • クエリが失敗しています。テーブルにフィールドがないか、データベースに実際のテーブルがないために、クエリが失敗している可能性があります。FALSE失敗した場合はクエリが返されますが、それをチェックしているのではなく、結果のプロパティにアクセスしようとします。クエリが失敗した場合、結果オブジェクトはありません。これはブール値FALSEであり、のような致命的なエラーを生成しますFatal Error: Trying to access a property of a none object

  • PHPインストール用に構成されたMySQLiライブラリがありません

さらにデバッグするには、以下のようにエラーレポートをオンにするか、サーバーのエラーログを参照してください。

error_reporting(E_ALL);
ini_set('display_errors', '1');
于 2012-06-24T17:12:18.260 に答える
0

1 つのことは、 を定義$row_cntしてからチェックしたことです$row_countが、それはプログラムをざっと見ただけなので、他にも何か問題がある可能性があります。

于 2012-06-24T16:55:39.523 に答える