ホームページ  >  記事  >  バックエンド開発  >  PHP 警告: mysqli_query(): 空のクエリの解決策

PHP 警告: mysqli_query(): 空のクエリの解決策

王林
王林オリジナル
2023-06-22 16:45:111643ブラウズ

PHP を使用して Web アプリケーションを開発すると、さまざまな問題が発生することがよくあります。その中で、いくつかの一般的な問題は MySQL データベースに関連しています。問題の 1 つは、「PHP 警告: mysqli_query(): 空のクエリ」エラーです。この記事では、このエラーの原因と修正方法について説明します。

まず、このエラーの意味を見てみましょう。 mysqli_query 関数を使用して MySQL クエリを実行するとき、クエリが空の場合、このエラーが発生します。これは、MySQL クエリを実行しようとしたが、クエリ文字列が空であったことを意味します。たとえば、次のコードのクエリ文字列は空です:

$result = mysqli_query($conn, "");

このクエリを実行しようとすると、このエラーが発生します。これはさまざまな状況で発生する可能性があります。理由のいくつかを次に示します。

  1. 構文エラー: クエリ文字列の構文エラーにより、空になる可能性があります。たとえば、誤って括弧や引用符を残した場合、クエリ文字列が空になる可能性があります。
  2. 変数が定義されていません: クエリ文字列で PHP 変数を使用し、これらの変数がクエリの前に定義されていない場合、クエリ文字列が空になる可能性があります。
  3. データベース接続エラー: コードにバグがあり、MySQL データベースに正しく接続できない場合、クエリが空になる可能性があります。

それでは、この問題をどうやって解決すればよいでしょうか?考えられる解決策は次のとおりです。

  1. クエリ文字列内の構文エラーを検索します。構文エラーをチェックできるように、echo ステートメントを使用してクエリ文字列を出力する必要があります。構文エラーを探すときは、括弧、引用符、カンマを注意深く確認してください。

たとえば、次のクエリ文字列:

$sql = "SELECT * FROM myTable WHERE id = ";

$id 変数が定義されていない場合、クエリ 文字列は空です。 $id 値を追加するか、クエリ文字列を次のように変更する必要があります:

$sql = "SELECT * FROM myTable";

  1. MySQL 接続が正常であるかどうかを確認します。 MySQL データベースに正しく接続できません。クエリが空である可能性があります。 MySQL サーバーが実行中であること、ユーザー名とパスワードが正しいことを確認できます。また、MySQL サーバーのポート番号を変更してみることもできます。
  2. mysqli_real_escape_string 関数を使用してクエリ文字列をエスケープします: クエリ文字列を構築して変数を使用している場合は、mysqli_real_escape_string 関数を使用してこれらの変数をエスケープすることをお勧めします。これにより、クエリ文字列に不正な文字が含まれないようになり、クエリ文字列が空になることがなくなります。

たとえば、次のコードは変数を使用してクエリ文字列を作成します。

$name = "Tom";
$sql = "SELECT * FROM myTable WHERE name = '$name '";

mysqli_real_escape_string 関数を使用して変数をエスケープできます。

$name = "Tom";
$name = mysqli_real_escape_string($conn, $name);
$ sql = "SELECT * FROM myTable WHERE name = '$name'";

これにより、$name に一重引用符または二重引用符が含まれている場合でも、クエリ文字列が空にならないことが保証されます。

概要:

mysqli_query 関数を使用して MySQL クエリを実行する場合、クエリ文字列が空の場合、「PHP 警告: mysqli_query(): 空のクエリ」というエラーが表示されます。これは、構文エラー、未定義の変数、または MySQL 接続エラーなどが原因である可能性があります。この問題を解決するには、クエリ文字列の構文エラーをチェックし、MySQL サーバーが実行中で正しく接続されていることを確認し、mysqli_real_escape_string 関数を使用して変数をエスケープし、クエリ文字列が空でないことを確認します。

以上がPHP 警告: mysqli_query(): 空のクエリの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。