PHPでMySQLに接続する方法(mysqli, PDO)

2021-07-06

概要

mysql関数を使ってphpからMySQL接続はphp5.5以降は非推奨となり、MySQLへの接続は「mysqli」か「PDO」になりました。

この「mysqli」と「PDO」を利用してPHPからMySQLへの接続方法を紹介します
接続するPHPのサンプルでは、MySQLのデータベースで以下のようなテスト用のデータベースを使用しています

  • データベース:MariaDB 10.3
  • データベース名:testdb
  • テーブル名:test_tbl
MariaDB [testdb]> SELECT * FROM `test_tbl`;
+----+------------+
| id | name       |
+----+------------+
|  1 | strawberry |
|  2 | cherry     |
|  3 | pear       |
|  4 | banana     |
|  5 | grape      |
|  6 | melon      |
|  7 | peach      |
|  8 | apple      |
|  9 | kiwi       |
| 10 | plum       |
+----+------------+
10 rows in set (0.002 sec)

PHPで、mysqli を使ってMySQLに接続する

mysqliを利用して、MySQLに接続します。データベース名、テスト名、パスワード等はご使用の環境によって変更して下さい

$ vim mysqli.php
<?php

$server = 'localhost';
$user = 'dbuser';
$pass = 'pass1234';
$dbname = 'testdb';

$my = new MySQLi($server, $user, $pass, $dbname);
$my->set_charset('utf8');
$sql = "SELECT * FROM `test_tbl` LIMIT 0 , 30";
$result = $my->query($sql);
// データベースの中身を取得
  while($row = $result->fetch_assoc() ){
    echo $row['id'] ."\t" .$row['name'] . "\n";
}
// DB接続を閉じる
$my->close();

?>

上記のPHPを実行すると下記のようになります

$ php mysqli.php
1	strawberry
2	cherry
3	pear
4	banana
5	grape
6	melon
7	peach
8	apple
9	kiwi
10	plum

PHPで、PDO を使ってMySQLに接続する

PDOを利用して、MySQLに接続します。データベース名、テスト名、パスワード等はご使用の環境によって変更して下さい

$ vim mysq_pdo.php
<?php
$user = 'dbuser';
$pass = 'pass1234';

try {
  $pdo = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', $user, $pass);
  $dsn = $pdo->query('SELECT * FROM `test_tbl` LIMIT 0 , 30');

  $dsn->execute();
  $all = $dsn->fetchAll();

  foreach ($all as $row) {
    echo $row['id'] ."\t" .$row['name'] . "\n";
  }

// 接続を閉じる
  $dsn = null;
  $pdo = null;

} catch (PDOException $e) { // PDOExceptionをキャッチする
    print "エラー!: " . $e->getMessage() . "<br/gt;";
    die();
}

?>

上記のPHPを実行すると下記のようになります

$ php mysql_pdo.php
1	strawberry
2	cherry
3	pear
4	banana
5	grape
6	melon
7	peach
8	apple
9	kiwi
10	plum