開発では、 MySQLIを使用してMySQLデータベースに接続すると、さまざまなエラーが発生する場合があります。これらの問題をデバッグするには、 mysqli :: $ errnoを使用してエラー情報をすばやく取得し、エラーの特定の原因を理解できます。この記事では、mysqli :: $ errnoと一般的なmysqlエラーコードの意味の使用方法を紹介します。
mysqli :: $ errnoは、最後のmysql操作のエラーコードを保存するmysqliクラスのプロパティです。このプロパティにアクセスすることで、データベース操作が成功しているかどうかを確認できます。操作が失敗した場合、 $ errnoはエラーコードを返し、このエラーコードに基づいて問題を診断できます。
まず、MySQLデータベースに接続してSQLステートメントを実行する必要があります。 SQLステートメントの実行中にエラーが発生した場合、 mysqli :: $ errnoが対応するエラーコードに設定されます。これが例です:
<?php
// 作成する mysqli オブジェクトとデータベースに接続します
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_errno) {
echo "データベースに接続できませんでした: " . $mysqli->connect_error;
exit();
}
// 埋め込む SQL 声明
$result = $mysqli->query("SELECT * FROM non_existent_table");
// クエリが成功したかどうかを確認してください
if (!$result) {
echo "クエリに失敗しました,エラーコード: " . $mysqli->errno . "<br>";
echo "エラーメッセージ: " . $mysqli->error;
}
$mysqli->close();
?>
上記のコードでは、存在しないテーブル( non_existent_table )のクエリを意図的に実行しました。これにより、エラーがトリガーされました。 $ mysqli-> errnoはエラーコードを返し、エラーコードに基づいてエラーの特定の原因を見つけることができます。
以下は、いくつかの一般的なMySQLエラーコードと、開発者がエラーメッセージをよりよく理解できるようにするためのその意味です。
エラーコード | エラーメッセージ | 説明する |
---|---|---|
1045 | ユーザーのアクセスは拒否されます | ユーザー認証は、通常ユーザー名またはパスワードエラーで失敗しました |
1049 | 不明なデータベース | データベースは存在しません |
1146 | テーブル「xxx」は存在しません | テーブルは存在しません |
1064 | SQL構文にエラーがあります | SQL構文エラー |
1062 | キー「プライマリ」の重複エントリ | 主要な競合、挿入されたプライマリキーの重複 |
2002年 | ローカルMySQLサーバーに接続できません | mysqlサーバーに接続できないため、通常サーバーは起動しません |
2013年 | MySQL Serverへの接続が失われました | 接続の失われた、可能なネットワークの問題、またはサーバーのタイムアウト |
1142 | 拒否されたコマンドを選択します | ユーザーは選択操作を実行する許可を持っていません |
1366 | 整数値が正しくありません | 挿入されたデータ型はフィールドタイプと一致しません |
1054 | 不明な列 | クエリ列は存在しません |
mysqli :: $ errnoによって提供されたエラーコードが発生した場合、ここにそれを処理する一般的な方法があります。
エラーコード1045(ユーザーにはアクセス拒否) :これは、提供されたユーザー名またはパスワードが間違っていることを意味します。正しい資格情報に接続し、構成ファイルに保存されているデータベースログイン情報を確認してください。
エラーコード1049(不明なデータベース) :このエラーは、接続されたデータベースが存在しないことを示しています。データベース名が正しく綴られていることを確認するか、データベースサーバーに対応するデータベースを作成する必要があります。
エラーコード1064(SQL構文にエラーがあります) :これはSQL構文エラーです。 SQL Queryステートメントにタイプミスがあるかどうかを確認し、SQLステートメントが構文ルールに準拠していることを確認してください。
エラーコード1062(キー「プライマリ」の重複エントリ) :このエラーは、重複したプライマリキー値を挿入しようとしていることを示しています。挿入されたデータを確認して、重複がないことを確認したり、主要なキー値を変更したりできます。
エラーコード1146(テーブル 'xxx'は存在しません) :このエラーは、クエリテーブルが存在しないことを示しています。テーブルが作成されていることを確認するか、クエリステートメントのテーブル名が正しいことを確認する必要があります。
mysqli :: $ errnoは、 MySQLエラーの原因をすばやく見つけるのに役立つ非常に実用的なツールです。エラーコードとエラーメッセージを組み合わせることにより、問題をより効率的に解決できます。さらに、一般的なMySQLエラーコードとその意味を理解することは、開発中のデバッグ効率を改善するのにも役立ちます。
うまくいけば、この記事がmysqli :: $ errnoをよりよく理解して使用し、MySQLエラーをより簡単に処理するのに役立つことを願っています。他の問題が発生した場合は、さらに検索するために公式のMySQLエラーコードドキュメントを参照することもできます。