PHP が MySQL に接続する
PHP 5 以降では、MySQL に接続するために次のメソッドを使用することが推奨されます:
· MySQLi extension (「i」は改良されたことを意味します)
· PDO (PHP Data Objects)
PHP の初期のバージョンでは、 MySQL 拡張機能を使用します。しかし、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
MySQL に接続します
構文
mysql_connect(サーバー名、ユーザー名、パスワード);
説明 | |
サーバー名 オプション。接続するサーバーを指定します。デフォルトは「localhost:3306」です。 | |
オプション。ログインに使用するユーザー名を指定します。デフォルト値は、サーバープロセスを所有するユーザーの名前です。 | |
パスワード | はオプションです。ログインに使用するパスワードを指定します。デフォルトは「」です。 |
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 は、接続プロセス中にデータベース名を設定する必要があります。指定しない場合、例外がスローされます
接続を閉じます
スクリプトの実行後、接続は自動的に閉じられます。次のコードを使用して接続を閉じることもできます:
Instance (MySQLi - オブジェクト指向)
$conn->close();
Instance (MySQLi - Procedural)
mysqli_close($conn);インスタンス (PDO)
$conn = null;接続が失敗した場合は、「die」部分が実行され、接続が成功した場合は、プログラムの実行後に接続が閉じられます。<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $con = mysqli_connect("localhost","root","root","test"); if (!$con) { die('Could not connect: ' . mysqli_error()); } else{ echo "连接数据库成功"; } // some code mysqli_close($con); ?>上記のコードは、localhost という名前のサーバーに接続することを意味し、ユーザー名は root、パスワードは root で、接続に失敗した場合はテスト データベースが使用されます。プログラムの実行結果は次のとおりです。
データベース接続に成功しました