Derniers tutoriels de développement web
 

PHP Connectez-vous à MySQL


PHP 5 et versions ultérieures peuvent fonctionner avec une base de données MySQL à l'aide:

  • L' extension MySQLi (the "i" stands for improved) une (the "i" stands for improved)
  • PDO (PHP Data Objects)

Les versions antérieures de PHP utilisé l'extension MySQL. Cependant, cette extension a été dépréciée en 2012.


Dois-je utiliser MySQLi ou AOP?

Si vous avez besoin d' une réponse courte, il serait "Whatever you like" .

Les deux MySQLi et AOP ont leurs avantages:

PDO travaillera sur 12 systèmes de base de données, alors que MySQLi ne fonctionne qu'avec les bases de données MySQL.

Donc, si vous devez passer votre projet d'utiliser une autre base de données, PDO rend le processus facile. Il vous suffit de changer la chaîne de connexion et quelques requêtes. Avec MySQLi, vous devrez réécrire tout le code - requêtes incluses.

Les deux sont orienté objet, mais MySQLi offre également une API de procédure.

Les deux soutiennent déclarations préparées. Des déclarations préparées à protéger de l'injection SQL et sont très importants pour la sécurité des applications Web.


Exemples MySQL dans les deux MySQLi et AOP Syntaxe

En cela, et dans les chapitres suivants, nous démontrons trois façons de travailler avec PHP et MySQL:

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • AOP

Installation MySQLi

Pour Linux et Windows: L'extension MySQLi est automatiquement installé dans la plupart des cas, lorsque paquet php5 mysql est installé.

Pour plus de détails d'installation, rendez - vous à: http://php.net/manual/en/mysqli.installation.php


Installation AOP

Pour plus de détails d'installation, rendez - vous à: http://php.net/manual/en/pdo.installation.php


Ouvrez une connexion à MySQL

Avant de pouvoir accéder à des données dans la base de données MySQL, nous devons être en mesure de se connecter au serveur:

Exemple (MySQLi Object-Oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Note sur l'exemple orienté objet ci-dessus: connect_error $ ont été cassé jusqu'à ce que PHP 5.2.9 et 5.3.0. Si vous avez besoin d'assurer la compatibilité avec les versions antérieures à PHP 5.2.9 et 5.3.0, utilisez plutôt le code suivant:

// Vérifier la connexion
si ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() a die("Database connection failed: " . mysqli_connect_error() );
}

Exemple (MySQLi Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Exemple (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?>

Notez que dans l'exemple ci - dessus PDO nous avons spécifié une base de données (myDB) . AOP nécessite une base de données valide pour se connecter. Si aucune base de données est spécifiée, une exception est levée.

Astuce: Un grand avantage de PDO est qu'il a une classe d'exception pour traiter des problèmes qui peuvent se produire dans nos requêtes de base de données. Si une exception est levée dans le try {} bloc, le script arrête l' exécution et les flux directement à la première catch() bloc {}.


Fermez la connexion

La connexion sera fermée automatiquement lorsque le script se termine. Pour fermer la connexion avant, utiliser les éléments suivants:

Exemple (MySQLi Object-Oriented)

$conn->close();

Exemple (MySQLi Procedural)

mysqli_close($conn);

Exemple (PDO)

$conn = null;