PHPでMySQLデータベースを使用する場合、 MySQLI拡張機能は、データベース操作を処理するためのリッチな機能を提供します。 mysqli :: get_warningsは、 SQLステートメントを実行した後にデータベースによって生成された警告情報を開発し、より良いデバッグと最適化を実現するのに役立つ非常に実用的な機能の1つです。この記事では、mysqli :: get_warningsの基本的な使用法と予防策をすばやく理解する必要があります。
mysqli :: get_warnings関数は、現在の接続によって生成されたすべての警告情報を含むオブジェクト( mysqli_warning )を返すために使用されます。たとえば、データを挿入する場合、データの切り捨てまたはデータ型の不一致がありますが、SQLステートメント自体にエラーはありません。
これらの警告を取得すると、開発者が潜在的な問題を発見し、プログラムの例外やデータの例外を回避できます。
次の例は、mysqli :: get_warningsを使用して警告情報を取得する方法を示しています。
<?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
if ($mysqli->connect_error) {
die("接続に失敗しました: " . $mysqli->connect_error);
}
// 実行すると警告が生成される場合がありますSQL声明,たとえば、データ型は一致しません
$sql = "INSERT INTO users (id, name) VALUES (1, 'チャン・サン'), (2, 'li si'), (3, '王ウー')";
if ($mysqli->query($sql) === TRUE) {
echo "正常に挿入します\n";
// 警告情報を取得します
if ($warn = $mysqli->get_warnings()) {
do {
echo "警告番号: " . $warn->errno . "\n";
echo "警告メッセージ: " . $warn->message . "\n";
} while ($warn->next());
} else {
echo "警告なし\n";
}
} else {
echo "間違い: " . $mysqli->error;
}
$mysqli->close();
?>
mysqli :: get_warningsはmysqli_warningオブジェクトを返し、警告がない場合はnullを返します。
$ warn-> errnoで警告コードを取得します。
$ warn->メッセージで警告の説明を取得します。
$ warn-> next()メソッドを介してすべての警告を繰り返します。
データが挿入または更新されたときの警告をキャプチャ<br> データを挿入すると、フィールドタイプが一致しない場合、またはデータが切り捨てられている場合、SQLステートメントは正常に実行されますが、警告が生成されます。現時点では、 get_warningsを使用してこの情報をキャプチャします。
複雑なSQLステートメントのデバッグ<br> いくつかの複雑なクエリまたは更新は、満たされていない外部のキーの制約や、問題をエンコードする文字エンコードなどの警告を引き起こす可能性があります。この関数を使用すると、問題を見つけることができます。
MySQLI :: Get_Warningsは、開発者がMySQL警告メッセージをキャプチャするのに役立つ非常に便利なデバッグツールです。潜在的なデータベースの問題のトラブルシューティングとプログラムの安定性を確保することは非常に重要です。この記事の導入を通じて、 mysqli :: get_warningsの使用スキルをすばやく習得し、PHPデータベースプログラミングの品質を向上させることができることを願っています。