mysql に接続するための php pdo と mysqli の使用法の比較

WBOY
リリース: 2016-07-25 08:51:42
オリジナル
853 人が閲覧しました
  1. // pdo

  2. $pdo = new pdo("mysql:host=localhost;dbname=database", 'username', 'password');

  3. $mysqli = mysqli_connect('localhost','username','password','database');

  4. // mysqli、オブジェクト指向

  5. $ mysqli = new mysqli('localhost','username','password','database');

コードをコピー

3. データベースのサポート pdo は複数のデータベースをサポートしますが、mysqli は mysql のみをサポートします

4. 名前パラメータ 名前パラメータ PDO モード:

  1. $params = array(':username' => 'test', ':email' => $mail, ':last_login' => time() - 3600); >prepare('
  2. select * from users
  3. where username = :username
  4. and email = :email
  5. and last_login > :last_login');
Copy code
MySQL はさらに面倒で、これをサポートしていません。のみ:

  1. $query = $mysqli->prepare('
  2. select * from users
  3. where username = ?
  4. and email = ?
  5. and last_login > ?');
  6. $query->bind_param(' sss', 'test', $mail, time() - 3600);
  7. $query->execute();
コードをコピー
この場合、質問を順番に並べるのはさらに面倒になります1つずつマークするのはあまり便利ではありません。

5. ORMマッピングのサポート たとえば、次のようなクラス ユーザーがあります。

    class User
  1. {
  2. public $id;
  3. public $first_name;
  4. public $last_name;
  5. public function info()
  6. {
  7. return '#' . $this->id . $this->first_name . ' ' . $this->last_name;
  8. }
  9. }
  10. $query = "ユーザーから ID、first_name、last_name を選択";
  11. // PDO
  12. $result = $pdo->query ($query);
  13. $result->setFetchMode(PDO::FETCH_CLASS, 'User');
  14. while ($user = $result->fetch())
  15. {
  16. echo $user->info() . "n";
  17. }
コードをコピー
mysqli はプロセス指向のアプローチを使用します。 " n";
}

}

コードをコピー
  1. 6. SQL インジェクションを防ぐ (SQL インジェクションを防ぐための PHP メソッドの分析): PDO手動設定
$username = pdo::quote($_get['username']);$pdo->query("select * from users where username = $username");

コードをコピー

mysqli を使用します:
$username = mysqli_real_escape_string($_get['username']);$mysqli->query("select * from users where username = '$username'");

コードをコピー

7.準備 PDO メソッド:
$pdo->prepare('select * from users where username = :username');$pdo->execute(array(':username' => $_get['username'] ));

コードをコピー

mysqliの方法:
$query = $mysqli->prepare('select * from users where username = ?');$query->bind_param('s', $_get['username']); $query->execute();

コードをコピー
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート