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 で、接続に失敗した場合はテスト データベースが使用されます。プログラムの実行結果は次のとおりです。

データベース接続に成功しました

学び続ける
||
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜