Maison >développement back-end >tutoriel php >Comment puis-je exécuter plusieurs requêtes MySQL indépendamment en PHP ?

Comment puis-je exécuter plusieurs requêtes MySQL indépendamment en PHP ?

DDD
DDDoriginal
2024-12-03 06:10:10169parcourir

How Can I Execute Multiple MySQL Queries Independently in PHP?

Exécuter plusieurs requêtes MySQL en une seule à l'aide de PHP

Problème :

Vous devez exécuter deux requêtes MySQL distinctes et gérer leurs résultats indépendamment en PHP. Les requêtes sont :

SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10;
SELECT FOUND_ROWS();

Réponse :

En utilisant l'extension mysql_ standard en PHP, il n'est pas possible d'exécuter plusieurs requêtes en une seule transaction. Cependant, vous pouvez obtenir le résultat souhaité en suivant ces étapes :

  1. Exécutez la première requête :
$query1 = "SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10;";
$result1 = mysql_query($query1);
  1. Exécuter le deuxième requête :
$query2 = "SELECT FOUND_ROWS();";
$result2 = mysql_query($query2);
  1. Récupérer les résultats de la première requête :
$rows1 = mysql_fetch_all($result1, MYSQL_ASSOC);
  1. Récupérer les résultats de la seconde requête :
$totalRows = mysql_fetch_row($result2)[0];

En suivant ces étapes, vous pouvez exécuter les deux requêtes indépendamment et gérer leurs résultats séparément. Notez que cette approche n'est pas aussi efficace que de les exécuter en une seule transaction, mais c'est le seul moyen d'obtenir le résultat souhaité en utilisant l'extension mysql_.

Solution alternative (obsolète) :

Mise à jour : On pensait auparavant qu'il était possible d'exécuter plusieurs requêtes dans une seule instruction en utilisant la fonction mysql_connect() avec un drapeau. Cependant, cette méthode est obsolète et ne doit pas être utilisée.

Solution moderne :

Pour les applications PHP modernes, il est recommandé d'utiliser le PDO (PHP Data Objets) extension pour les interactions avec la base de données. PDO fournit un moyen plus orienté objet et plus cohérent d'exécuter des requêtes SQL et de récupérer leurs résultats. En utilisant PDO, vous pouvez exécuter les deux requêtes comme suit :

$pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
$stmt1 = $pdo->prepare($query1);
$stmt2 = $pdo->prepare($query2);

$stmt1->execute();
$rows1 = $stmt1->fetchAll(PDO::FETCH_ASSOC);

$stmt2->execute();
$totalRows = $stmt2->fetchColumn();

Cette solution est plus efficace et plus facile à utiliser que l'ancienne extension mysql_.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn