【发布时间】:2018-10-04 21:25:12
【问题描述】:
我将我的 PDO 定义如下
$pdo = new PDO("mysql:host=$host;port=$port;dbname=db1", $user, $pass);
然后我尝试在 db1 中创建一个视图
$query = "CREATE VIEW my_view AS
select option_name,option_value from db1.options
UNION ALL
select option_name,option_value from db2.options;"
$pdo->beginTransaction();
$pdo->exec($query);
$result = $pdo->commit();
if ($result) {
print_r("COMMIT OK!");
} else {
print_r("COMMIT FALSE");
$pdo->rollBack();
}
我得到“COMMIT OK”作为输出,但转到数据库时我根本看不到任何视图。
想法?
【问题讨论】:
-
改用
$query = "CREATE VIEW my_view AS ( select option_name,option_value from db1.options UNION ALL select option_name,option_value from db2.options )"。 -
@RaymondNijland 不起作用。
-
小注 DDL命令默认执行一个提交,你不能停止那个提交。所以你的提交是不必要的。由于这种自动提交,请注意您运行 DDL 的位置,因为它还会提交您可能拥有的任何其他内容
In Flight哦,那当然是您获得正确的 DDL 语法的时候! -
“我得到“COMMIT OK”作为输出,但进入数据库我看不到任何视图。“你是如何验证的?我的意思是你使用的是什么 MySQL 管理程序?
-
Raymond - 在 PDO 中,当我选择“表 'NxAzwWswQf1Aw71r.testme' 不存在(SQLSTATE=42S02,CODE=1146)时,我得到了这个。” - 我使用工作台,也是终端,没有任何效果。