PHP se connecte à MySQL
PHP 5 et supérieur sont recommandés pour utiliser la méthode suivante pour se connecter à MySQL :
Extension MySQL ("i" signifie amélioré)
PDO (PHP Data Objects)
Dans les premières versions de PHP, nous utilisons l'extension MySQL. Cependant, cette extension est devenue obsolète en 2012.
Pour une introduction complète à PDO, veuillez vous référer à : PHP PDO dans le manuel de référence PHP
Dois-je utiliser MySQLi ou PDO ?
Si vous avez besoin d'une réponse courte, "utilisez celle avec laquelle vous êtes à l'aise".
MySQLi et PDO ont leurs propres avantages : 12 bases de données différentes prises en charge Prise en charge de MySQL
Connexion facile Non prise en charge
Mappage d'objets pris en charge Pris en charge Non pris en charge
Performances Assistance
Par conséquent, les différentes méthodes et attributs de PDO sont plus polyvalents et doivent prendre en compte les opérations de diverses bases de données et sont applicables à une portée plus large ; Si votre projet doit basculer entre plusieurs bases de données, il est recommandé. pour utiliser PDO de cette manière, il vous suffit de modifier la chaîne de connexion et l'instruction de requête du service. La série de classes et de méthodes de MySQLi ne peut faire fonctionner que la base de données MySQL ; en utilisant MySQLi, s'il s'agit d'une base de données différente, vous devez réécrire tous les codes, y compris les requêtes. Les deux sont orientés objet, mais MySQLi fournit également une interface API.Les deux prennent en charge les déclarations préparées. Les instructions préparées peuvent empêcher l'injection SQL et sont très importantes pour la sécurité des projets Web.
MySQLi et PDO se connectent à l'instance MySQL
Dans ce chapitre et les chapitres suivants, nous utiliserons les trois méthodes suivantes pour démontrer le fonctionnement de PHP MySQL :
MySQLi (orienté objet)
MySQLi (orienté procédure)
PDO
Installation MySQL
Linux et Windows : Installer le mysql php5 package L'extension MySQLi est installée automatiquement dans la plupart des cas.
Pour les détails d'installation, veuillez vérifier : http://php.net/manual/en/mysqli.installation.php
Vous pouvez utiliser le fichier .php avec le nom de suffixe du logiciel PHP (PhpStorm) Écrivez phpinfo() et cliquez pour ouvrir le navigateur pour vérifier si l'installation a réussi :
Installation PDO
Pour les détails d'installation, veuillez vérifier : http://php.net/manual/en/pdo.installation.php
Vous pouvez vérifier si le l'installation est réussie via phpinfo() :
Connexion à MySQL
Avant d'accéder à la base de données MySQL , nous devons d'abord nous connecter au serveur de base de données :
Exemple (MySQLi - Orienté objet)
<?php // 三个参数 $servername = "localhost"; // 服务器地址(域名、IP) $username = "username"; // 数据库用户名 $password ="password"; // 数据库密码(可能为空) // 创建连接 $conn =new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
Notez que dans l'exemple orienté objet ci-dessus $connect_error est en PHP 5.2.9 et 5.3.0 ajouté. Si vous avez besoin d'une compatibilité avec les versions antérieures, veuillez utiliser le remplacement de code suivant :
// Détecter la connexion
if (mysqli_connect_error()) {
die(" Échec de connexion à la base de données : " . mysqli_connect_error());
}
Instance (MySQLi - procédural)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = mysqli_connect($servername,$username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "连接成功"; ?>
Notez que dans l'exemple orienté processus ci-dessus, si vous souhaitez sélectionner directement le nom de la base de données à laquelle vous souhaitez vous connecter lors de la connexion à la base de données, il y aura un quatrième paramètre : $db_name = "db_name"; // Nom de la base de données
// Créer une connexion
$conn = mysqli_connect($servername, $username, $password, $db_name);
Instance (PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB",$username, $password); echo "连接成功"; } catch(PDOException $e) // PDOException 错误处理 { echo $e->getMessage(); // getMessage()取得文本化的错误信息 } ?>Notez que dans l'instance PDO ci-dessus, nous avons spécifié la base de données (myDB). PDO doit définir le nom de la base de données pendant le processus de connexion. Si rien n’est spécifié, une exception sera levée.
Fermer la connexion
La connexion sera fermée automatiquement après l'exécution du script. Vous pouvez également utiliser le code suivant pour fermer la connexion :
Instance (MySQLi - Orienté Objet)
$coon->close();
Instance (MySQLi - Orienté procédure)
mysql_close($coon);
Instance (PDO)
mysql_close($coon);
Annexe
Annexe Le code complet précédent pour se connecter à la base de données et obtenir les résultats de la requête (pour référence) :
Exemple
<?php $conn = mysqli_connect($servername,$username,$password); // 获取连接 if($conn){ //判断是否连接 mysqli_select_db($conn,"db_name"); // 选择一个数据库 mysqli_query($conn,"set names utf8"); // 查询输出要使用utf8的编码格式,避免乱码 $sql = "select * from product;"; // 查找到数据库的product表() $result = mysqli_query($conn,$sql); // 从键连获取到数据库的字表 while($row = mysqli_fetch_array($result,MYSQL_ASSOC)){ // MYSQLI_ASSOC返回键值形式数组 echo $row["需要输出的表中列的名称"]; } mysqli_free_result($result); // 释放内存在 mysqli_close($conn); // 关闭连接 echo "成功"; }else{ echo "失败"; }; ?>