PHP 5 以降の場合、次の方法を使用して MySQL に接続することをお勧めします。
MySQLi 拡張機能(「i」は改良されたことを意味します)
PDO (PHP データ オブジェクト)
PHP の以前のバージョンでは、MySQL 拡張機能を使用していました。ただし、この拡張機能は 2012 年以降非推奨になりました。
短い答えが必要な場合は、「使いやすいものを使用してください」。
MySQLi と PDO にはそれぞれ次のような利点があります。
PDO は 12 の異なるデータベースで使用されており、MySQLi は MySQL データベースのみを対象としています。
したがって、プロジェクトで複数のデータベース間を切り替える必要がある場合は、接続文字列と一部のクエリ ステートメントのみを変更するだけで済むように、PDO を使用することをお勧めします。 MySQLi では、別のデータベースを使用する場合、クエリを含むすべてのコードを書き直す必要があります。
どちらもオブジェクト指向ですが、MySQLi も API インターフェイスを提供します。
どちらも準備済みステートメントをサポートしています。 準備されたステートメントは SQL インジェクションを防ぐことができ、Web プロジェクトのセキュリティにとって非常に重要です。
この章と次の章では、次の 3 つの方法を使用して、PHP による MySQL の操作を説明します。
MySQLi (オブジェクト指向)
MySQLi (プロシージャ指向)
PDO
Linux および Windows: ほとんどの場合、MySQLi 拡張機能は、php5 mysql パッケージのインストール時に自動的にインストールされます。
インストールの詳細については、http://php.net/manual/en/mysqli.installation.php を参照してください。
インストールが成功したかどうかは、phpinfo() で確認できます。
インストールの詳細については、http://php.net/manual/en/pdo.installation.php を参照してください。
インストールが成功したかどうかは、phpinfo() で確認できます。
MySQL データベースにアクセスする前に、データベース サーバーに接続する必要があります。
上記のオブジェクト指向の例の $connect_error は、PHP 5.2.9 および 5.3.0 で追加されたものであることに注意してください。以前のバージョンとの互換性が必要な場合は、次のコードを使用して置き換えてください: // 接続を確認 if (mysqli_connect_error()) { die("データベース接続に失敗しました: " . mysqli_connect_error());} |
上記の PDO の例では、データベース (myDB) を指定していることに注意してください。 PDO は、接続プロセス中にデータベース名を設定する必要があります。指定しない場合、例外がスローされます。 |
スクリプトの実行後、接続は自動的に閉じられます。次のコードを使用して接続を閉じることもできます。