第20回 PHP で MariaDB へ接続

公開日:2020-10-22 更新日:2020-10-22

1. 概要

PHP で MariaDB へ接続します。

2. 動画



3. 接続用パッケージのインストール

dnf install php-pdo        DBに接続して操作するためのもの
dnf install php-mysqlnd    MySQL Native Driver。PDO から MySQLに接続するためのもの

インストール後、PHP-FPM の 再起動
systemctl restart php-fpm

phpinfo() を表示して、PDO と mysqlnd のセクションが表示されればOK。

もし PDO と mysqlnd が表示されない場合は、
rpm -ql php-pdo
でモジュール(~.so) のパスを確認して、
php.ini の extension_dir にモジュールを移動するか、
/etc/php.ini で、
extension=モジュールのフルパス
として、読み込ませてください。

4. DBに接続するサンプル

/usr/share/nginx/html/db.php
<?php
  //DB接続用オブジェクトの作成                                 ユーザ名 パスワード
  $db = new PDO('mysql:dbname=test_db;host=127.0.0.1;port=3306', 'web', 'web');
  
  //エラーの時は例外発生するようにする。指定しないと、エラーでも正常終了する。
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
  //SQLの設定
  $sql = 'select * from test_data where data = :data';
  
  //SQLのパラメータの設定
  $stmt = $db->prepare($sql);
  $stmt->bindValue(':data', 'aaa');
  
  //SQLの実行
  $result = $stmt->execute();
  
  //実行結果の取得
  $dataList = [];
  while($data = $stmt->fetch(PDO::FETCH_ASSOC)) { // or FETCH_NUM
    $dataList[] = $data;
  }
  
  var_dump($dataList);
  //var_dump($dataList[0]['data']); // PDO::FETCH_ASSOC を指定した場合
  //var_dump($dataList[0][1]);      // PDO::FETCH_NUM   を指定した場合

5. PHP のエラー内容の表示

ブラウザに PHP のエラー内容を表示したい場合は、
/etc/php.ini で以下のようにしてください。
display_errors = On
変更後、PHP-FPM を再起動してください。