CodeIgniter4 MS SQL SERVERの接続

前回PostgreSQLとの接続を行いましたが、今回は、MS SQL SERVERとの接続を試しました。

MS SQL SERVERのサポート

Mysql, PostgreSQLと同様にデータベースを追加しようとしましたが、うまく行きませんでした。
公式には、Server Requirementsとして

  • MSSQL via the SQLSRV driver (version 2005 and above only)
  • MSSQL via the pdo driver

とあるのですが、うまくできず。
このCodeIgniterのフォーラムでは、まだMSSQL用のドライバーがないということでした。
MSSQL用のドライバーはありませんので、app/Modelsを使用しない接続となりました。

SQLSRVの準備

こちらを参考にさせていただきました。
作業としては、下記になります。

  1. Microsoft Drivers for PHP for SQL Serverのダウンロード
  2. SQLSRVの解凍と配置
  3. php.iniにドライバーの追記

phpinfoのPDOを確認し、下記のように追記されていればOKです。

phpinfo

MS SQL SERVERの接続

下記にて接続をします。通常のデータベース接続と同様で、ホストネーム、ポート名、データベース名、ユーザー名、パスワードを記入します。


private function connectMSSQL(){
  $pdo = new \PDO('sqlsrv:Server=localhost,1433;Database=testDB', 'sa', 'password');
  $pdo->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC);
  return $pdo;
}

これで接続はできましたので、あとは通常の関数にてデータを使用します。
データを取得し、msql-test-view.phpというViewファイルに返るところまでです。


public function SelectDate(){
  $sql = "SELECT * FROM test_table;"; //SQL文
  $stmt = $this->connectMSSQL()->prepare($sql); //ここでconnectMSSQL()に接続
  $stmt->execute();
  $testData = $stmt->fetchAll(); //$testDataにデータを格納

  $data = [ //$dataに$testDataを格納
      'testData' =>$testData
  ];

  return view('mssql-test-view', $data);    //$dataとmssql-test-viewに遷移
}

以上です。

2021年6月の段階で、MSSQL用のドライバーはありませんでしたが、じきにできると思います。できるだけapp/Modelsを使用したほうがよいでしょう。

——ホタイブログ—–

関連記事:
Chart.js 複数軸で右表示しない、min/max設定ができない
CodeIgniter4 複数のデータベースを設定する
JSONを使ったDataTablesに編集ボタンを実装する。
CodeIgniter4にJSONを使ってDataTablesを実装する
CodeIgniter4にBootstrap、DataTablesを使ったページネーション
CodeIgniter4 シンプルなページネーションの実装

SNSでもご購読できます。

コメント

コメントを残す

*