簡単なWebアプリをチュートリアルに沿って作っています。
(フレームワークは使わず、素のPHPで書いています)
データベースとの連携のために
複数ファイルに記述しているtrycatch文なのですが
毎回同じような記述があることに気づいたので
共通化できないかと考えています。
そこで下記のような関数を作成してみました。
(catch文で使われているh関数はfunctions.phpで定義しています)
dbConnect.php
php
1<?php 2 require_once('functions.php'); 3 4 const DB_NAME = 'database'; 5 const HOST = 'localhost'; 6 const UTF = 'utf8'; 7 const DB_USER = 'root'; 8 const DB_PASSWORD = 'root'; 9 const DSN = 'mysql:host=' . HOST . ';dbname='. DB_NAME . ';charset=' . UTF; 10 11 function dbFunc($sqlSentence, $pattern, $bindValue1, $bindValue2, $bindValue3) { 12 try { 13 $dbh = new PDO(DSN, DB_USER, DB_PASSWORD); 14 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 15 $sql = $sqlSentence; 16 17 if ($pattern = 'query') { 18 $stmt = $dbh->query($sql); 19 } 20 21 if ($pattern = 'prepare') { 22 $stmt = $dbh->prepare($sql); 23 $stmt->bindValue($bindValue1, $bindValue2 , $bindValue3); 24 $stmt->execute(); 25 } 26 27 $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 28 $dbh = null; 29 } catch (PDOException $e) { 30 echo 'エラー' . h($e->getMessage()); 31 exit(); 32 } 33 }
もしこの書き方では良くないポイントがあれば教えていただきたいです。
(または参考になりそうな記事があれば教えてほしいです)
また、現場ではデータベース連携するためのコードは
どのように書かれているのでしょうか?
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー