【发布时间】:2012-12-20 04:54:31
【问题描述】:
过去一个小时我一直在研究这个问题,但还没有想出一个不涉及一些奇怪的导出/导入的简单解决方案。
我要做的就是打开与两个数据库的 PDO 连接,以便我可以在查询中同时使用它们。
Stack Overflow 中似乎对此存在分歧。
一个答案:
...您需要为单独创建两个 PDO 对象 如果您想在运行时同时使用这两个连接。
但其他人似乎建议您可以在查询中“使用”两个数据库:
$sql = "SELECT * FROM dbname.tablename";
$sql = "SELECT * FROM anotherdbname.anothertablename"
除了在我的 PDO 连接函数中明确定义的数据库之外,我尝试在另一个数据库上执行 SELECT 命令。我得到了这个:
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE [42000]:语法错误或访问冲突:1142 SELECT 表拒绝用户“dbusername”@“localhost”的命令 “表名”
我确保将用户添加到两个数据库并授予完全权限。
是否可以在同一连接中使用两个数据库的查询?还是必须设置两个不同的对象?
【问题讨论】:
-
你记得在完成授权后刷新 privs 吗?因为该错误全部与赠款有关。
-
我不确定...:(我如何刷新权限?
-
我只是使用我的 cPanel 将用户添加到另一个数据库并授予所有权限。
-
cPanel。哦。是的,你应该有flushed。它没有,或者它发生了故障。
-
哦,等等,您正在使用 one 连接来与两个数据库通信?除非您在 same 服务器上使用 same 凭据,否则无能为力。各有一个连接。两组不同的凭据意味着您需要两个连接。如果您只是发出
USE foo在运行时切换,那应该可以。也许您应该向我们展示失败的代码而不仅仅是摘要?我仍然认为这是破坏赠款....