一覧
状態:-
閲覧数:2,228
投稿日:2014-09-30
更新日:2015-07-15
MySQL接続方法比較
・MySQLi / オブジェクト指向型、手続き型
・PDO
・MDB2
・MySQLi / オブジェクト指向型、手続き型
・PDO
・MDB2
クラス | メソッド | メリット | デメリット | 備考 |
---|---|---|---|---|
MySQLi | オブジェクト指向型 / mysqli::__construct | - | - | ※コンストラクタにつき、実際に記述する内容は、new mysqli |
MySQLi | 手続き型 / mysqli_connect | - | - | MySQLバージョン> 4.1.3 |
- | mysql_connect | データベース固有のネイティブドライバ。速度が一番早い。データベース特有の機能を使用可能 | 用意されている関数は他のデータベース用として共通化されているわけではない(MySQL以外では使用不可)。今後、他のDBを使用する可能性がある場合には、避けた方が良い | PHP 5.5.0 で非推奨。MySQLに特化したネイティブ関数。スクリプトの終了とともに自動的に接続が解除される |
- | mysql_pconnect | - | - | PHP 5.5.0 で非推奨。MySQLに特化したネイティブ関数。スクリプト終了後も永続的に接続は確立されたままとなる。そのため、不特定多数のアクセスを受け入れると負荷が非常に大きくなってしまうが、特定少数であれば接続待ち時間のロスを大きく減らすことができる |
PDO | PDO::__construct | PHPスクリプトとネイティブドライバの組合せではなく、PHP Extension(PHP拡張)として利用できるため、PEAR::MDB2より速いとされる。 元々はPECLで書かれたラッパのため、PHPで書かれたPEARのラッパより速度面で有利。 ※ PECL(ピクル、PHP Extension Community Library)は、PHPで利用できる拡張ライブラリ(パッケージ)を提供しているサービス。PECLで提供されるライブラリはCで記述されているた め、PHPで記述されたPEARのライブラリよりも高速に動作 |
レンタルサーバによっては対応していない可能性もあり(モジュールを使えるようにしてあるかの問題) | ※コンストラクタにつき、実際に記述する内容は、new PDO。PDOは、「PHP Data Objects」の略 |
- | MDB2::connect | どのデータベースでも利用可能 | 共通のAPIを提供している部分がPHPスクリプトで書かれているため、実効速度が遅い | PHPで用意されている、多くのネイティブなデータベースアクセスのための関数(ネイティブドライバ)をPHPスクリプトでまとめ(ラッピングし)、共通のAPIを提供しているもの。 PHPスクリプトとネイティブドライバの組み合わせ。 複数のDBを同じ操作で使えるようにしたDB接続関数のラッパ。※MDBは、MDB2の前バージョン |
特徴
mysqli::real_escape_string と mysqli_real_escape_string は、引数の数が異なる
mysqli_escape_string
・mysqli_real_escape_string() のエイリアス
mysqli_escape_string
・mysqli_real_escape_string() のエイリアス