J'essaie de créer une table temporaire à partir des résultats de plusieurs tables similaires (même structure de table). Après avoir créé la table temporaire et exécuté les requêtes suivantes, j'aimerais stocker les résultats de la table temporaire dans un tableau qui sera accessible ultérieurement dans le programme script. J'ai essayé de chercher une réponse mais je n'arrive pas à en trouver une.
J'ai essayé nextRowset() ainsi que de séparer les requêtes, mais rien ne semble fonctionner comme je l'aurais souhaité.
Voici mon code :
$pdo = new PDO("mysql:host=".$_SESSION['server'].";dbname=data".$_SESSION['sysident'],$user,$pass);
$stmt = $pdo->prepare("DROP TABLE IF EXISTS $tabletocreate;
CREATE TEMPORARY TABLE $tabletocreate LIKE table1;
INSERT INTO $tabletocreate (SELECT * FROM table1 WHERE (MISC LIKE '%:memno%' OR MEMNO = :memno)) UNION (SELECT * FROM table2 WHERE (MISC LIKE '%:memno%' OR MEMNO = :memno)) UNION (SELECT * FROM table3 WHERE (MISC LIKE '%:memno%' OR MEMNO = :memno)) ORDER BY SLIPNO;
SELECT * FROM $tabletocreate");
$stmt->bindParam(":memno",$_SESSION['memno']);
$stmt->execute();
$stmt->nextRowset();
$test = $stmt->fetchAll();
print_r($test);
Je ne sais pas pourquoi les résultats ne sont pas stockés dans le tableau. D'après ce que je peux dire, tout semble correct et aucune erreur ne se produit lorsque le script est exécuté. Je vous remercie de l'aide que vous pourrez m'apporter.
MISE À JOUR - J'ai trouvé pourquoi la requête ne fonctionnait pas. J'ai utilisé un "-" dans le nom de la table que j'essayais de créer, ce qui n'est pas autorisé.