PHPデータベース接続手順
データベース接続を、誰にとっても最も重要な 8 つのステップにまとめました。私はそれを冗談めかして「データベース接続の 8 つのステップ」と呼んでいます。
8つのステップは次のとおりであり、各ステップで使用される関数について説明します:
ステップ1: データベースサーバーに接続します
タイプ | 説明 |
---|---|
関数 | mysqli_connect |
関数 | mysqlデータベースサーバーに接続 |
パラメータ1 | ホスト |
パラメータ2 | データベースサーバのログイン名 |
パラメータ3 | パスワード |
パラメータ 4 | データベース名 |
パラメータ 5 | データベースサーバーポートが入力されていない場合、デフォルトは 3306 です |
パラメータ 4、データベース名がこのステップで入力および選択されている場合、実行する必要はありません3番目のステップ。
ステップ2: 判定エラー
Type | Description |
---|---|
Function | mysqli_errno |
Function | 接続エラー番号を返します、エラーはありません0 を返します |
パラメータ 1 | mysqli_connect によって返されたリソースを渡します |
Type | Description |
---|---|
Function | mysqli_error |
Function | 接続エラー文字列を返す |
パラメータ 1 | pass mysqli_connect によって返されたリソースを入力します |
ステップ 3: データベースを選択
type | Description |
---|---|
function | mysqli_select_db |
機能 | この接続内のデータベースを選択します |
パラメータ 1 | mysqli_connect によって返されたリソースを渡します |
パラメータ 2 | 接続するデータベース名 |
データベースが最初のステップで入力されており、変更する必要がない場合別のデータベースにコピーする場合は、3 番目のステップを実行する必要はありません。
ステップ4: 文字セットを設定する
タイプ | 説明 |
---|---|
関数 | mysqli_set_charset |
関数 | mysqlサーバーとの接続、結果、文字セットを確認してください |
パラメータ 1 | mysqli_connect によって返されたリソースを渡します |
パラメータ 2 | 文字セットの種類 |
その他の注意事項については、書籍「13.6 データ表示文字化けの究極の解決策」を参照してください
ステップ 5: SQL ステートメントを準備します
実際には SQL ステートメントの文字列です。
例:
<?php $sql = "insert into user(username,password) values('$username','$password')"; $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } // some code ?>
通常、SQL ステートメントで使用する変数を割り当てます。ただし、変数または SQL ステートメントにエラーがあり、トラブルシューティングが非常に困難です。
実際の実務経験に基づいてこのステップを追加しました。
このステップの実行時にエラーが報告された場合は、SQL ステートメントを印刷して phpMyAdmin または関連ツールに貼り付けることができます。
トラブルシューティングの際、実行が成功した場合、問題は SQL ステートメントにないことを意味します。実行に失敗した場合は、SQL ステートメントを再確認してください。
ステップ 6: SQL ステートメントを送信する
タイプ | 説明 |
---|---|
関数 | mysqli_query |
関数 | SQL ステートメントを送信する |
パラメータ1 | mysqli_connectを渡して戻りますリソース |
パラメータ 2 | 送信する SQL ステートメントを入力します |
SQL ステートメントは準備されており、mysqli_query を通じて MySQL サーバーに送信する必要があります。
MySQL サーバーは、送信された実行用 SQL ステートメントを実行します。
ステップ 7: 実行が正常であるかデータが走査されているかを判断する
読み取り
ステップ 6 では、選択カテゴリのステートメントが送信され、通常は結果出力を表示する必要があります。表示データをトラバースする関数を使用する必要があります。
タイプ | 説明 |
---|---|
関数 | mysqli_fetch_array |
関数 | 結果セット内のデータを取得し、便宜上配列を返します |
パラメータ1 | が渡されますクエリ結果変数 |
パラメータ 2 | インデックス配列を返すには MYSQLI_NUM、連想配列を返すには MYSQLI_ASSOC、インデックスと関連付けを返すには MYSQLI_BOTH を渡します |
タイプ | 説明 |
---|---|
function | mysqli_fetch_assoc |
Function | 結果結果セット内のデータを取得し、便宜上連想配列を返します |
パラメータ1 | クエリからの結果変数を渡します |
タイプ | 説明 |
---|---|
関数 | mysqli_fetch_row |
関数 | 結果セット内のデータを取得し、便宜上インデックス配列を返します |
パラメータ 1 | を渡しますクエリからの結果変数 |
Type | 説明 |
---|---|
Function | mysqli_fetch_object |
Function | 結果結果のデータを取得するトラバーサル用のオブジェクトを設定して返します |
パラメータ 1 | クエリからの結果変数を渡します |
タイプ | 説明 |
---|---|
関数 | mysqli_num_rows |
関数 | クエリされた結果の合計数を返す |
パラメータ1 | クエリから結果変数を渡します |
タイプ | 説明 |
---|---|
関数 | mysqli_num_rows |
関数 | クエリされた結果の総数を返す |
パラメータ 1 | クエリからの結果変数を渡します |
注: | が実際の作業で使用されることはほとんどありません。 |
が記述されている場合、通常、insert ステートメントが送信された場合、その実行が成功したかどうかを知る必要があることを理解してください。 、または同時に自動インクリメントされる ID を取得します。
タイプ | 説明 |
---|---|
関数 | mysqli_fetch_field |
関数 | データ行を走査 |
パラメータ1 | クエリから結果変数を渡します |
変更と削除
ステップ 6 で、カテゴリの更新と削除のステートメントが送信された場合。実行が成功したかどうかを判断する必要があるだけです。
これらの一般的に使用される関数をデータテーブルにリストし、誰もが確認できるようにします。
ステップ 8: データベースを閉じる
タイプ | 説明 |
---|---|
関数 | mysqli_close |
関数 | データベース接続を閉じる |
パラメータ 1 | が渡されて返されましたby mysqli_connect リソース |
データベース接続はリソース タイプです。これについては、前の章でリソースの種類を説明したときに説明しました。関係するすべてのリソース タイプは、オープンまたはクローズのいずれかです。これにより、PHP はリソースをより効率的に処理およびリサイクルできるようになります。
したがって、データベース接続が成功した後は、それを使用する必要はありません。この接続を閉じることができます。
その他: サーバー情報の表示関数
Type | Description |
---|---|
Function | mysqli_get_server_info |
Function | サーバー情報を返す |
パラメータ 1 | によって渡され、返されますmysqli_connect リソース |
タイプ | 説明 |
---|---|
関数 | mysqli_get_server_version |
関数 | サーバーのバージョンを返す |
パラメータ 1 | mysqli_connect によって返されたリソースを渡します |
注:
Mysqli は手続き型メソッドを学習するだけで済みます。オブジェクト指向段階の実際の作業では、mysqli のオブジェクトの使用は完全に放棄され、代わりに PDO オブジェクトがデータベースへの接続に使用されました。