PHP MySQL接続
PHP 5 以降では、次の方法を使用して MySQL に接続することをお勧めします:
MySQLi 拡張機能 (「i」は改良されたことを意味します)
PDO (PHP データ オブジェクト) )
PHP の初期バージョンでは、MySQL 拡張機能を使用します。ただし、この拡張機能は 2012 年に廃止されました。
MySQLi と PDO を使用する必要がありますか?
簡単に答えたい場合は、「使いやすい方を使用してください」と答えてください。
MySQLi と PDO には独自の利点があります。
PDO は 12 の異なるデータベースで使用され、MySQLi は MySQL データベースのみを対象としています。
そのため、プロジェクトで複数のデータベース間を切り替える必要がある場合は、接続文字列と部門クエリ ステートメントのみを変更する必要があるように、PDO を使用することをお勧めします。 MySQLi では、別のデータベースを使用する場合、クエリを含むすべてのコードを書き直す必要があります。
どちらもオブジェクト指向ですが、MySQLi も API インターフェイスを提供します。
どちらも準備されたステートメントをサポートします。 準備されたステートメントは SQL インジェクションを防ぐことができ、Web プロジェクトのセキュリティにとって非常に重要です。
MySQLi と PDO は MySQL インスタンスに接続します
この章と次の章では、次の 3 つのメソッドを使用して MySQL の PHP 操作を説明します。
MySQLi (オブジェクト指向)
MySQLi (指向プロセス)
PDO
MySQLi のインストール
Linux および Windows: ほとんどの場合、MySQLi 拡張機能は、php5 mysql パッケージのインストール時に自動的にインストールされます。
インストールの詳細については、http://php.net/manual/en/mysqli.installation.php
phpinfo():
PDOインストールを通してインストールが成功したかどうかを確認できます
インストールについて 詳細については、 http://php.net/manual/en/pdo.installation.php を参照してください。
インストールが成功したかどうかは、phpinfo():
PHP 接続を通じて確認できます。 MySQL へ
MySQL への訪問では、データベースの前に、まずデータベース サーバーに接続する必要があります:
インスタンス (MySQLi - オブジェクト指向)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
上記の点に注意してください。オブジェクト指向の例 $connect_error は PHP 5.2.9 にあり、5.3.0 で追加されました。以前のバージョンとの互換性が必要な場合
次のコードを使用して置き換えてください: //接続を検出 if (mysqli_connect_error()) { die("データベース接続に失敗しました: " .mysqli_connect_error()); } |
インスタンス (MySQLi - 手続き型)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "连接成功"; ?
インスタンス (PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
上記の PDO インスタンスではデータベース ( myDB)。 PDO は、接続プロセス中にデータベース名を設定する必要があります。指定しない場合、例外がスローされます。 |
接続を閉じます
スクリプトの実行後、接続は自動的に閉じられます。次のコードを使用して接続を閉じることもできます:
インスタンス (MySQLi - オブジェクト指向)
$conn->close();
インスタンス (MySQLi - プロシージャル)
mysqli_close($conn);