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 // 三個參數(shù) $servername = "localhost"; // 服務(wù)器地址(域名、IP) $username = "username"; // 數(shù)據(jù)庫用戶名 $password ="password"; // 數(shù)據(jù)庫密碼(可能為空) // 創(chuàng)建連接 $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"; // 創(chuàng)建連接 $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"); // 選擇一個數(shù)據(jù)庫 mysqli_query($conn,"set names utf8"); // 查詢輸出要使用utf8的編碼格式,避免亂碼 $sql = "select * from product;"; // 查找到數(shù)據(jù)庫的product表() $result = mysqli_query($conn,$sql); // 從鍵連獲取到數(shù)據(jù)庫的字表 while($row = mysqli_fetch_array($result,MYSQL_ASSOC)){ // MYSQLI_ASSOC返回鍵值形式數(shù)組 echo $row["需要輸出的表中列的名稱"]; } mysqli_free_result($result); // 釋放內(nèi)存在 mysqli_close($conn); // 關(guān)閉連接 echo "成功"; }else{ echo "失敗"; }; ?>