我正在尝试从多个相似的表(相同的表结构)的结果中创建一个临时表。创建临时表并运行后续查询后,我想将临时表的结果存储在一个数组中,以便稍后在脚本/程序中访问。我曾尝试寻找答案,但似乎找不到答案。
我已经尝试过 nextRowset() 以及分离查询,但似乎没有任何工作像我期望的那样工作。
这是我的代码:
$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);
我不确定为什么没有将结果存储到数组中。据我所知,一切似乎都是正确的,并且在运行脚本时没有发生错误。我感谢任何人可以提供的任何帮助。
更新 - 我发现了为什么查询不起作用。我在尝试创建的表名中使用了“-”,这是不允许的。