Dans le développement de PHP, une grande quantité de données est souvent nécessaire pour écrire dans la base de données MySQL. L'insertion d'un par un est non seulement inefficace, mais augmente également le nombre de connexions de base de données. L'insertion par lots de données peut améliorer efficacement les performances. Cet article expliquera en détail comment implémenter l'insertion par lots de MySQL dans PHP.
Les inserts par lots ont des avantages importants par rapport à l'insertion par insertion:
Réduisez le nombre d'interactions avec la base de données pour améliorer les performances.
Simplifiez la structure du code, améliorez l'efficacité du développement et la maintenabilité du code.
Tout d'abord, vous devez préparer les données à insérer. Voici un exemple de tableau représentant le nom et les informations par e-mail de l'utilisateur:
$data = array(
array('John', 'Doe', '[email protected]'),
array('Jane', 'Smith', '[email protected]'),
array('Tom', 'Hanks', '[email protected]')
);
Dans les applications pratiques, les sources de données peuvent être une soumission de formulaire, une lecture de fichiers, etc.
Connectez-vous à la base de données MySQL à l'aide de l'extension MySQLI de PHP. L'exemple de code est le suivant:
$host = "localhost";
$username = "root";
$password = "password";
$database = "mydatabase";
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
die("Échec de la connexion: " . $conn->connect_error);
}
Veuillez remplacer les informations de connexion par les paramètres de l'environnement réel.
En traversant le tableau de données, créez un insert complet dans la déclaration:
$sql = "INSERT INTO users (first_name, last_name, email) VALUES ";
foreach ($data as $row) {
$sql .= "('" . $conn->real_escape_string($row[0]) . "', '"
. $conn->real_escape_string($row[1]) . "', '"
. $conn->real_escape_string($row[2]) . "'),";
}
$sql = rtrim($sql, ",");
Utilisez la méthode Real_escape_string pour empêcher l'injection SQL et assurer la sécurité des données.
Utilisez la méthode de requête pour exécuter des instructions SQL et vérifier les résultats d'exécution:
if ($conn->query($sql) === true) {
echo "Insertion de données avec succès!";
} else {
echo "L'insertion a échoué:" . $conn->error;
}
$conn->close();
Grâce aux étapes ci-dessus, vous pouvez implémenter efficacement l'insertion des données par lots de MySQL à l'aide de PHP. Cette méthode réduit le nombre de connexions de base de données, améliore les performances opérationnelles et convient aux besoins de stockage rapides de grandes quantités de données.
La maîtrise de la technologie d'insertion par lots peut optimiser efficacement l'interaction entre les applications PHP et les bases de données et améliorer les performances globales du système.