TECH I.S.

PHP MySQLへの接続


PHP5以降では、以下を使用して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の例

この章と次の章では、PHPとMySQLを操作する3つの方法を示します。

  • MySQLi(オブジェクト指向)
  • MySQLi(手続き型)
  • PDO

MySQLiインストール

LinuxおよびWindowsの場合: ほとんどの場合、php5 mysqlパッケージがインストールされると、MySQLi拡張機能が自動的にインストールされます。

インストールの詳細については、以下のURLにアクセスしてください。http://php.net/manual/en/mysqli.installation.php



PDOのインストール

インストールの詳細については、以下のURLにアクセスしてください。
http://php.net/manual/en/pdo.installation.php


MySQLへの接続を開く

MySQLデータベースのデータにアクセスする前に、サーバーに接続できる必要があります。

例 (MySQLi オブジェクト指向)

<?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は、PHP5.2.9および5.3.0まで壊れていました。 5.2.9および5.3.0より前のバージョンのPHPとの互換性を確保する必要がある場合は、代わりに次のコードを使用してください。

例 (MySQLi プロシージャル)

<?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 オブジェクト指向:

$conn->close();

MySQLi 手続き型:

mysqli_close($conn);

PDO:

$conn = null;



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細