Manuel d'auto-a...login
Manuel d'auto-apprentissage complet PHP
auteur:php.cn  temps de mise à jour:2022-04-15 13:53:54

Connexion PHP-MySQL




Il est recommandé d'utiliser PHP 5 et supérieur 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 utilisions l'extension MySQL. Cependant, cette extension est devenue obsolète en 2012.


Dois-je utiliser MySQLi ou PDO ?

Si vous avez besoin d'une réponse courte, "utilisez celui avec lequel vous êtes à l'aise".

MySQLi et PDO ont leurs propres avantages :

PDO est utilisé dans 12 bases de données différentes, et MySQLi ne cible que les bases de données MySQL.

Ainsi, si votre projet doit basculer entre plusieurs bases de données, il est recommandé d'utiliser PDO, de sorte qu'il vous suffit de modifier la chaîne de connexion et l'instruction de requête du département. Avec MySQLi, si vous utilisez une autre base de données, vous devez réécrire tout le code, 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 avec MySQL :

  • MySQLi (orienté objet)

  • MySQLi (orienté procédure)

  • PDO


Installation MySQLi

Linux et Windows : Dans la plupart des cas, l'extension MySQLi est automatiquement installée lorsque le package php5 mysql est installé.

Pour les détails de l'installation, veuillez vérifier : http://php.net/manual/en/mysqli.installation.php

Vous pouvez vérifier si l'installation a réussi via phpinfo() :

mysqli.jpg


Installation PDO

Pour les détails d'installation, veuillez consulter : http://php.net/manual/en/pdo.installation.php

Vous pouvez vérifier si l'installation a réussi via phpinfo() :

pdo.jpg


PHP se connecte à MySQL

Avant d'accéder au Base de données MySQL, nous devons d'abord nous connecter au serveur de base de données :

Instance (MySQLi - Orienté Objet)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
// 创建连接
$conn = 
new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
Note< /th>Notez que $connect_error dans l'exemple orienté objet ci-dessus a été ajouté dans PHP 5.2.9 et 5.3.0. Si vous avez besoin d'une compatibilité avec des versions antérieures Veuillez utiliser le code suivant pour remplacer :
Note注意在以上面向对象的实例中 $connect_error 是在 PHP 5.2.9 和 5.3.0 中添加的。如果你需要兼容更早版本 请使用以下代码替换:

// 检测连接
if (mysqli_connect_error()) {
    die("数据库连接失败: " . mysqli_connect_error());
}
<🎜>// Détecter la connexion<🎜>if (mysqli_connect_error()) {<🎜> die("Échec de la connexion à la base de données : " . mysqli_connect_error());<🎜>}

Instance (MySQLi - Orienté procédure)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
// 创建连接
$conn = mysqli_connect($servername, 
$username, $password);
// 检测连接
if (!$conn) {
    die("Connection 
failed: " . mysqli_connect_error());
}
echo "连接成功";
?

Instance (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", 
$username, $password);
    echo "连接成功";
}
catch(PDOException $e)
{
    
echo $e->getMessage();
}
?>
Note注意在以上 PDO 实例中我们已经指定了数据库 (myDB)。PDO 在连接过程需要设置数据库名。如果没有指定,则会抛出异常。

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)

$conn->close();

Instance (MySQLi - Processus orienté objet)

mysqli_close($conn);

Instance (PDO)

$conn = null;

Recommandation de didacticiel vidéo connexe : "tutoriel mysqlhttp://www.php.cn/course/list/51.html


Site Web PHP chinois