Maison  >  Questions et réponses  >  le corps du texte

Guide d'utilisation de PDO : Utilisation de plusieurs requêtes pour faire fonctionner SQL Server

<p>Je souhaite exécuter certaines requêtes qui ne renvoient pas de jeu de résultats, puis exécuter une requête <em>real</em> et obtenir ses résultats. Voici un exemple qui ne fonctionne pas : </p> <pre class="brush:php;toolbar:false;"><?php essayer { $db = new PDO('dblib:host=myhost;dbname=master','user','password'); $query = "déclarer @entier int = 1;"; $db->exec($query); $query = "sélectionner @entier;"; $stmt = $db->query($query); $rows = $stmt->fetchAll(); print_r($lignes); } attraper (PDOException $e) { print ($e->getMessage()); } attraper (Exception $e) { print ($e->getMessage()); } ?>≪/pré> <p>Ce code ne fonctionne pas non plus : </p> <pre class="brush:php;toolbar:false;">essayer { $db = new PDO('dblib:host=myhost;dbname=master','user','password'); $query = "déclarez @entier int = 1; sélectionnez @entier;"; $stmt = $db->query($query); $rows = $stmt->fetchAll(); print_r($lignes); } attraper (PDOException $e) { print ($e->getMessage()); } attraper (Exception $e) { print ($e->getMessage()); } ?>≪/pré> <p>Mais ce code fonctionne : </p> <pre class="brush:php;toolbar:false;"><?php essayer { $db = new PDO('dblib:host=myhost;dbname=master','user','password'); $query = "sélectionner 1;"; $stmt = $db->query($query); $rows = $stmt->fetchAll(); print_r($lignes); } attraper (PDOException $e) { print ($e->getMessage()); } attraper (Exception $e) { print ($e->getMessage()); } ?>≪/pré> <p>Merci pour votre aide</p>
P粉178132828P粉178132828456 Il y a quelques jours489

répondre à tous(1)je répondrai

  • P粉770375450

    P粉7703754502023-08-14 16:31:58

    Je sais que c'est vieux, mais pour tous ceux qui trouvent cette question via Google : vous devez utiliser PDOStatement::nextRowset pour parcourir les ensembles de résultats de plusieurs requêtes.

    Cependant, dans certaines versions, il semblait y avoir des problèmes de mémoire lors de l'utilisation de nextRowset et dblib (dans mon cas, 94 To de mémoire ont été alloués en essayant...), j'ai donc fini par repenser pour éviter complètement plusieurs requêtes SQL (alors que c'est pour copier la valeur déclaré là où il est utilisé).

    répondre
    0
  • Annulerrépondre