PHP 5以降では使用してMySQLデータベースを操作できます。
- mysqli拡張 (the "i" stands for improved)
- PDO (PHP Data Objects)
PHPの以前のバージョンでは、MySQL拡張を使用しました。 しかし、この拡張は、2012年に廃止されました。
私はMySQLiをかPDOを使用する必要がありますか?
あなたは短い答えを必要とする場合、それは次のようになり"Whatever you like" 。
MySQLiをとPDOの両方が彼らの利点があります。
PDOは、MySQLiをのみMySQLデータベースで動作するよう12種類のデータベース・システム上で動作します。
あなたが別のデータベースを使用するようにプロジェクトを切り替えることがあればそう、PDOは、プロセスが容易になります。 あなただけの接続文字列と、いくつかのクエリを変更する必要があります。 MySQLiを使用すると、コード全体を書き換える必要があります - クエリが含まれています。
どちらも、オブジェクト指向ですが、MySQLiをも手続き型APIを提供しています。
どちらも、プリペアドステートメントをサポートしています。 プリペアドステートメントは、SQLインジェクションから保護し、Webアプリケーションのセキュリティのために非常に重要です。
MySQLiをとPDO構文の両方でのMySQLの例
この中で、および以下の章では、我々は、PHPとMySQLを扱う3つの方法を示します。
- MySQLiを(object-oriented)
- MySQLiを(procedural)
- PDO
MySQLiをインストール
LinuxとWindowsの場合:PHP5のMySQLのパッケージがインストールされている場合MySQLi拡張モジュールが自動的に、ほとんどの場合、インストールされています。
インストールの詳細については、次を参照してください。 http://php.net/manual/en/mysqli.installation.php
PDOのインストール
インストールの詳細については、次を参照してください。 http://php.net/manual/en/pdo.installation.php
MySQLへの接続を開きます。
私たちは、MySQLデータベース内のデータにアクセスする前に、我々は、サーバーに接続できるようにする必要があります:
例(MySQLi Object-Oriented)
<?php
$servername = "localhost";
$username = "username";
$password =
"password";
// Create connection
$conn =
new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
オブジェクト指向の例に注意してください上記の:$ connect_errorはPHP 5.2.9および5.3.0まで壊れていました。 あなたは5.2.9と5.3.0より前のPHPのバージョンとの互換性を確保する必要がある場合は、次のコードを代わりに使用します。
//接続を確認してください
もし( mysqli_connect_error() ){
die("Database connection failed: " . mysqli_connect_error() )。
}
例(MySQLi Procedural)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername,
$username, $password);
// Check connection
if (!$conn) {
die("Connection
failed: " . mysqli_connect_error());
}
echo "Connected
successfully";
?>
実施例(PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB",
$username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
echo "Connected
successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
PDOの例では、我々はデータベースにも指定されている上記のことに注意してください(myDB) 。 PDOは接続する有効なデータベースが必要です。 何のデータベースが指定されていない場合、例外がスローされます。
ヒント:PDOの大きな利点は、それが私達のデータベースクエリで発生する可能性のある問題を処理するために例外クラスを持っているということです。 例外がtry {}ブロック内でスローされた場合、スクリプトが実行を停止し、最初に直接流れるcatch() {}ブロック。
接続を閉じます
スクリプトが終了したときに接続が自動的に閉じられます。 前に接続を閉じるには、次のコマンドを使用します。
例(MySQLi Object-Oriented)
$conn->close();
例(MySQLi Procedural)
mysqli_close($conn);
実施例(PDO)
$conn = null;