【发布时间】:2016-04-28 20:24:35
【问题描述】:
当我使用 mysql 或 pdo 时,以下查询在 phpMyAdmin 中有效,但在 php 脚本中无效。普通的选择查询可以从同一个 php 脚本中工作。
CREATE TEMPORARY TABLE tmptable1 (INDEX myindex (sid)) SELECT * FROM `table1` WHERE uid = 55 ORDER BY cc;
SELECT * FROM tmptable1 GROUP BY sid;
我在 LAMP 服务器上有 PHP 版本 5.5.0 和 mysqlnd 5.0.11-dev。
我在 stackoverflow 上读到,您不能将 pdo 用于多个查询。但是在this 问题中描述了两种方法,这两种方法都不适合我。
我尝试使用此设置,但它不起作用:
$db = new PDO("mysql:host=localhost;dbname=test", 'root', '');
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
$sql = "
DELETE FROM car;
INSERT INTO car(name, type) VALUES ('car1', 'coupe');
INSERT INTO car(name, type) VALUES ('car2', 'coupe');
";
try {
$db->exec($sql);
}
catch (PDOException $e)
{
echo $e->getMessage();
die();
}
我尝试了stackoverflow上另一个答案建议的另一种方法,但它说该功能未知:
$db = new PDO("mysql:host=localhost;dbname=test", 'root', '');
// works not with the following set to 0. You can comment this line as 1 is default
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);
$sql = "
DELETE FROM car;
INSERT INTO car(name, type) VALUES ('car1', 'coupe');
INSERT INTO car(name, type) VALUES ('car2', 'coupe');
";
try {
$stmt = $db->prepare($sql);
$stmt->execute();
}
catch (PDOException $e)
{
echo $e->getMessage();
die();
}
如何让这个查询从我的 php 脚本中获取结果?
【问题讨论】: