MySQL接続方法比較

データベース関連

一覧

 状態:-  閲覧数:2,388  投稿日:2014-09-30  更新日:2015-07-15  
MySQL接続方法比較
・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の前バージョン


特徴

 閲覧数:499 投稿日:2016-03-14 更新日:2016-03-14 
mysqli::real_escape_string と mysqli_real_escape_string は、引数の数が異なる

mysqli_escape_string
・mysqli_real_escape_string() のエイリアス


オブジェクト関係マッピング

MySQL Native Driver

コメント投稿(ログインが必要)



週間人気ページランキング / 7-27 → 8-2
順位 ページタイトル抜粋 アクセス数
1 PHPで定数を定義する方法は2種類ある / 配列定数の定義 7
2 T_CONSTANT_ENCAPSED_STRING | エラーメッセージ 5
3 ブラウザを閉じたらセッションデータはどうなるの? | セッション 4
3 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 4
4 「POSIX正規表現」と「PCRE正規表現」の違い 3
4 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 3
4 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 3
4 コード例 … 「例外処理」はネストすることができる 3
4 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 3
4 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 3
4 ( ! ) Warning: file_put_contents(/a/b.jpg): failed to open stream: No such file or directory in | エラーメッセージ 3
4 インポートするデータを受信できませんでした。ファイル名が送信されていないか、ファイルサイズが PHP の設定で許可された最大値を超えています。FAQ 1.16 をご覧ください | エラーメッセージ 3
4 ブラウザを閉じたらセッションデータはどうなるの? | セッション 3
5 $this | クラスとオブジェクト 2
5 ログイン 2
5 ob_start | 出力バッファリング制御(関数) 2
5 HTTP_VIA | 環境変数 2
5 dirname() / (__FILE__ ) / basename( dirname( __FILE__ ) ); | 関数 2
5 curl で Cookie を使用する 2
5 Fatal error: Using $this when not in object context in /○○.php on line △△ | Fatal error(エラーメッセージ) 2
2025/8/3 1:01 更新