現在の位置: ホーム> 最新記事一覧> mysqli_stmt :: $エラーを使用して、句のエラーをすばやく見つけます

mysqli_stmt :: $エラーを使用して、句のエラーをすばやく見つけます

gitbox 2025-05-28

PHP開発では、特にクエリステートメントが複雑で複数の条件と句が含まれている場合、SQLクエリのエラーデバッグは通常、退屈なタスクです。 MySQLI_STMT :: $ ERRORプロパティは、SQLクエリのエラー、特に条項の一般的なエラーを迅速に発見および解決するための非常に効果的なツールを提供します。

1。mysqli_stmt :: $エラーを使用する基本概念

まず、 mysqli_stmt :: $エラーはmysqli_stmtクラスのプロパティであり、最後のSQLステートメントが実行されたときに生成されたエラー情報を保存します。通常、 mysqli_stmt :: $エラーはエラー文字列を返します。 SQLクエリ実行に問題がない場合、プロパティは空の文字列を返します。

これにより、 mysqli_stmt :: $エラーは、特に句複合施設をデバッグする場合、SQLエラーをキャッチするための重要なツールになります。

2。SQLクエリの条項エラーに関するFAQ

Where句には、一般的なエラーが含まれます。

  • 誤った列またはテーブル名

  • 間違った比較演算子( ==の代わりに==を使用するなど)

  • 間違った構文(例:括弧の欠落)

  • 不適切なデータ型の比較(文字列と数字の比較など)

これらのエラーは通常、特にSQLクエリステートメントが長い場合、直感的に簡単に検出されません。

3. mysqli_stmt :: $ errorを使用して条項がある場合の位置決めのエラー

以下は、SQLクエリをデバッグし、 mysqli_stmt :: $エラーを介して句のエラーを見つけるための手順を示します。

3.1データベース接続と準備ステートメントの設定

まず、MySQLIデータベース接続を作成し、SQLステートメントを準備します。

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("接続に失敗しました: " . $mysqli->connect_error);
}

// 前処理ステートメント
$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ? AND age > ?");

if ($stmt === false) {
    die("声明の作成に失敗しました: " . $mysqli->error);
}
?>

3.2パラメーターをバインドし、ステートメントを実行します

次に、クエリパラメーターをバインドしてステートメントを実行します。ここでは、違法な年齢の価値を渡すなど、 Where句のエラーに年齢フィールドを意図的に作成できます。

 <?php
$username = "john_doe";
$age = "twenty";  // ここでは、故意に年齢をひもに設定します,数字ではありません

$stmt->bind_param("si", $username, $age);

$stmt->execute();
?>

3.3エラーを確認します

SQLクエリを実行した後、SQLステートメントがMySQLI_STMT :: $エラーを介して正常に実行されるかどうかを確認できます。エラーが発生した場合、詳細なエラーメッセージが返され、問題がすぐに見つかります。

 <?php
if ($stmt->error) {
    echo "SQL 間違い: " . $stmt->error;
} else {
    echo "クエリが成功しました";
}
?>

この時点で、 $ stmt->エラーは次のようなエラーメッセージが出力されます。

 SQL 間違い: Unknown column 'twenty' in 'where clause'

エラーメッセージから、受信20の文字列が法的番号ではないため、年齢フィールドでエラーが発生したことがわかります。

4。その他のデバッグスキル

mysqli_stmt :: $エラーを使用することに加えて、追加のデバッグ手順を実行できます。

  • 完全なSQLクエリの印刷:SQLクエリを手動で表示することも、デバッグする効果的な方法である場合があります。 MySQLIは、バインドされたクエリステートメントの出力を直接サポートしていませんが、クエリ文字列を手動で作成して出力できます。

  • MySQLエラーログの表示:データベースサーバーがサポートしている場合、MySQLエラーログを表示することもできます。これには、通常、SQLエラーの詳細が含まれています。

5。概要

MySQLI_STMT :: $ ERRORプロパティを使用すると、PHP開発者は、SQLクエリを実行するときに条項がある場合にエラーをすばやくキャッチして見つけることができます。これは、複雑なクエリステートメントにとって特に重要です。合理的なエラー処理とデバッグスキルを組み合わせることで、デバッグ効率を効果的に改善し、一般的なSQLエラーを回避できます。