下のページを参考にDB接続するクラスを作成したのですが、クラスを使わず接続していた時に比べると、読み込みにとても時間がかかるようになってしまいました。(87ms→1.08s)
アドバイス、参考になるページなど教えて頂けませんでしょうか?よろしくお願いします。
モデルの作り込み
http://www.objective-php.net/mvc/model_ex
コード
Base.php
PHP
1<?php 2 3class Base 4{ 5 private static $connectInfo; 6 public $dbh; 7 protected $name; 8 9 public function __construct() { 10 $this->dbConnect(); 11 } 12 13 public function dbConnect() { 14 $dsn = sprintf( 15 'mysql:host=%s;dbname=%s;port=3306', 16 self::$connectInfo['host'], 17 self::$connectInfo['dbname'] 18 ); 19 $this->dbh = new PDO($dsn, self::$connectInfo['dbuser'], self::$connectInfo['password']); 20 $this->dbh->query('SET NAMES utf8'); 21 } 22 23 public static function setConnectInfo($connectInfo) { 24 self::$connectInfo = $connectInfo; 25 } 26}
DB接続
php
1<?php 2 3require_once('../Base.php'); 4 5$connectInfo = array( 6 'host' => 'localhost', 7 'dbname' => 'db', 8 'dbuser' => 'root', 9 'password' => 'root' 10); 11 12Base::setConnectInfo($connectInfo); 13 14$base = new Base(); 15 16$dbh = $base->dbh;
以前のコード
PHP
1function dbconnect() { 2 3 $dsn = 'mysql:dbname=db;host=localhost'; 4 $user = 'root'; 5 $password = 'root'; 6 7 try { 8 $dbh = new PDO($dsn, $user, $password,array(PDO::ATTR_PERSISTENT => TRUE )); 9 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 10 $dbh->exec('SET NAMES utf8'); 11 } catch (PDOException $e) { 12 die("データベース接続エラーです。:{$e->getMessage()}"); 13 } 14 15 return $dbh; 16}
回答1件
あなたの回答
tips
プレビュー