回答編集履歴

1 修正

mts10806

mts10806 score 29020

2018/05/10 13:42  投稿

用途によるのですが、DB処理丸ごとオブジェクトにした方が汎用性が高く、メリットが多そうです。
※すみません未検証です。イメージだけもってください
db.php
```php
namespace db;
class Db {
 protected $db = null;
 protected $table = null;
 
 function __construct($table) {
   $this->db = new PDO('mysql:...');
   $this->table = $table;
 }
 public function getData($where=""){ // $whereは検索条件
   $query = "SELECT * FROM ".$this->table.$where;
  return $this->db->exec($query);
 }
}
```
main.php
```php
$db = new \db\Db("test");
$result = $db->getData();
```
接続情報は実際はmain.phpで使われるわけではなく、
取得してきたデータだけ使われるものとして捉えて、全てDB側で処理してしまうやりかたです。
main.phpは画面表示関係の処理のみ記載する形になりますので役割が明確となります。  
ご参考まで。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る