前回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の準備
こちらを参考にさせていただきました。
作業としては、下記になります。
- Microsoft Drivers for PHP for SQL Serverのダウンロード
- SQLSRVの解凍と配置
- php.iniにドライバーの追記
phpinfoのPDOを確認し、下記のように追記されていればOKです。
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 シンプルなページネーションの実装
コメント