Maison >développement back-end >tutoriel php >Résumé des méthodes pour connecter PHP à MySQL

Résumé des méthodes pour connecter PHP à MySQL

WBOY
WBOYavant
2022-12-15 11:58:136615parcourir

Cet article vous apporte des connaissances pertinentes sur le Tutoriel vidéo PHP, qui présente principalement le contenu pertinent de la connexion entre PHP et MySQL. Il existe trois interfaces API pour la connexion entre PHP et MySQL, à savoir : l'extension PHP MySQL, l'extension PHP MySQL. , Objet de données PHP (PDO), examinons-les séparément, j'espère que cela sera utile à tout le monde.

Résumé des méthodes pour connecter PHP à MySQL

Apprentissage recommandé : "PHP"

Nous pouvons utiliser l'instruction mysql_connect, l'instruction MySQLi ou PDO de PHP pour nous connecter à MySQL Avant de pouvoir accéder aux données de la base de données MySQL, nous devons pouvoir le faire. connectez-vous au serveur MySQL, voyons comment se connecter à MySQL.

Il existe trois interfaces API pour connecter PHP à MySQL, à savoir : l'extension MySQL de PHP, l'extension mysqli de PHP et PHP Data Object (PDO). Ce qui suit est un résumé des trois méthodes de connexion ci-dessus pour préparer la sélection dans différents scénarios. Trouvez la meilleure solution.

1. Extension MySQL

L'extension MySQL de PHP est une des premières extensions conçue et développée pour permettre aux applications PHP d'interagir avec les bases de données MySQL.

L'extension MySQL fournit une interface orientée procédure et est conçue pour MySQL 4.1.3 ou version antérieure.

Ainsi, bien que cette extension puisse interagir avec les serveurs de base de données MySQL 4.1.3 ou plus récents, elle ne prend pas en charge certaines fonctionnalités fournies par les serveurs MySQL ultérieurs.

Parce qu'il est trop ancien et dangereux, il a été complètement remplacé par le dernier mysqli ;

 //自 PHP 5.5.0 起已废弃。
    $mysql_conf = array(
        'host'    => '127.0.0.1:3306', 
        'db'      => 'test', 
        'db_user' => 'root', 
        'db_pwd'  => 'root', 
        );
    $mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
    if (!$mysql_conn) {
        die("无法连接到数据库:\n" . mysql_error());//诊断连接错误
    }
    mysql_query("set names 'utf8'");//编码转化为UTF-8
    //判断连接的数据库是否存在
    $select_db = mysql_select_db($mysql_conf['db']);
    if (!$select_db) {
        die("无法连接到数据库:\n" .  mysql_error());
    }
    $sql = "select * from user;";
    $res = mysql_query($sql);
    if (!$res) {
        die("could get the res:\n" . mysql_error());
    }
    
    while ($row = mysql_fetch_assoc($res)) {
        print_r($row);
    }
    
    mysql_close($mysql_conn);

2. extension mysqli

L'extension mysqli de PHP, nous l'appelons parfois l'extension améliorée de MySQL, peut être utilisée pour utiliser MySQL4.1.3. ou Nouvelles fonctionnalités avancées dans la version mise à jour.

Ses fonctionnalités sont : une interface orientée objet, la prise en charge des instructions préparées, la prise en charge de l'exécution de plusieurs instructions, la prise en charge des transactions, des capacités de débogage améliorées, la prise en charge des services intégrés et des méthodes de prétraitement qui résolvent complètement le problème de l'injection SQL.

Cependant, il présente également un inconvénient, c'est-à-dire qu'il ne prend en charge que la base de données MySQL.

Si vous n’exploitez pas d’autres bases de données, c’est sans aucun doute le meilleur choix.

//PHP与Mysqli扩展,面向过程、对象
 $mysql_conf = array(
     'host'    => '127.0.0.1:3306', 
     'db'      => 'test', 
     'db_user' => 'root', 
     'db_pwd'  => 'joshua317', 
     );
 
 $mysqli = @new mysqli($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
 if ($mysqli->connect_errno) {
     die("无法连接到数据库:\n" . $mysqli->connect_error);//诊断连接错误
 }
 $mysqli->query("set names 'utf8';");//编码转化utf8
 $select_db = $mysqli->select_db($mysql_conf['db']);
 if (!$select_db) {
     die("could not connect to the db:\n" .  $mysqli->error);
 }$sql = "select uid from user where name = 'joshua';";
 $res = $mysqli->query($sql);
 if (!$res) {
     die("sql error:\n" . $mysqli->error);
 }
  while ($row = $res->fetch_assoc()) {
         var_dump($row);
     }
 
 $res->free();
 $mysqli->close();

3. Extension PDO

PDO est l'abréviation de PHP Data Objects et est une spécification de couche d'abstraction de base de données dans les applications PHP.

PDO fournit une interface API unifiée qui permet à votre application PHP de ne pas se soucier du type de système de serveur de base de données spécifique à connecter. En d'autres termes, si vous utilisez l'API de PDO, vous pouvez changer de manière transparente de serveur de base de données à tout moment, par exemple. d'Oracle à MySQL, seule une petite quantité de code PHP doit être modifiée.

Ses fonctions sont similaires aux interfaces telles que JDBC, ODBC et DBI. De même, il résout également le problème de l’injection SQL et offre une bonne sécurité.

Cependant, il présente également des défauts. Certaines requêtes d'exécution multi-instructions ne sont pas prises en charge (mais cette situation est rare).

//PHP与PDO扩展,面向过程、对象
  $mysql_conf = array(
      'host'    => '127.0.0.1:3306', 
      'db'      => 'test', 
      'db_user' => 'root', 
      'db_pwd'  => 'joshua317', 
      );
  $pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);//创建一个pdo对象
  $pdo->exec("set names 'utf8'");
  $sql = "select * from user where name = ?";
  $stmt = $pdo->prepare($sql);
  $stmt->bindValue(1, 'joshua', PDO::PARAM_STR);
  $rs = $stmt->execute();
  if ($rs) {
      // PDO::FETCH_ASSOC 关联数组形式
      // PDO::FETCH_NUM 数字索引数组形式
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
          var_dump($row);
      }
  }
  
  $pdo = null;//关闭连接

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer