我将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();
}
我得到了#34; COMMIT OK"作为输出,但进入数据库,我看不到任何视图。
思想?
答案 0 :(得分:0)
调用exec后检查错误。
在每个SELECT
子句周围添加括号。 (除非你有ORDER BY
等,否则没有必要。)
抛出交易代码。 (见评论。)
您是否有权读取db1和db2?
您是否以这种方式检查了视图?
USE db1;
SHOW CREATE VIEW my_view;
如果你以其他方式检查过,请详细说明。