使用PDO创建视图失败

时间:2018-04-24 14:50:44

标签: php mysqli pdo mariadb

我将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"作为输出,但进入数据库,我看不到任何视图。

思想?

1 个答案:

答案 0 :(得分:0)

调用exec后检查错误。

在每个SELECT子句周围添加括号。 (除非你有ORDER BY等,否则没有必要。)

抛出交易代码。 (见评论。)

您是否有权读取db1和db2?

您是否以这种方式检查了视图?

USE db1;
SHOW CREATE VIEW my_view;

如果你以其他方式检查过,请详细说明。