Php 对多个数据库仅使用一个$dbh?

Php 对多个数据库仅使用一个$dbh?,php,mysql,pdo,Php,Mysql,Pdo,如果在同一台主机上有两个数据库,一个叫做博客,另一个叫做论坛,那么您似乎只能使用一个数据库句柄访问这两个数据库?(在PDO中) $dbh=newpdo(“mysql:host=$dbHost;dbname=blog”,$dbUser,$dbPassword) 此句柄用于数据库blog,但如果您编写以下内容,也可以使用$dbh在论坛上执行操作 选择网站.tableName.fieldName 我的问题是: 这是您必须在$dbh中指定dbname以便忽略blog.tableName.fieldNam

如果在同一台主机上有两个数据库,一个叫做博客,另一个叫做论坛,那么您似乎只能使用一个数据库句柄访问这两个数据库?(在PDO中)

$dbh=newpdo(“mysql:host=$dbHost;dbname=blog”,$dbUser,$dbPassword)

此句柄用于数据库blog,但如果您编写以下内容,也可以使用$dbh在论坛上执行操作

选择网站
.tableName.fieldName

我的问题是:

  • 这是您必须在$dbh中指定dbname以便忽略blog.tableName.fieldName部分的唯一原因吗

  • 既然我的网站有两个数据库,那么只使用一个数据库句柄,而不是创建两个句柄(显然一个用于博客,一个用于论坛)会有什么利弊?可能的性能差异

  • 创建数据库句柄是否会占用任何服务器资源

  • 是的,你可以省略它。或切换运行
    使用数据库名称
  • 使用一个手柄,进行双重连接似乎是一种浪费
  • 是的,因此(2)
  • 是的,你可以省略它。或切换运行
    使用数据库名称
  • 使用一个手柄,进行双重连接似乎是一种浪费
  • 是的,因此(2)
  • 在您制作的任何应用程序上保留特定于数据库的用户通常是一种很好的做法。我甚至认为这是必要的。这就是在连接中保留必需的数据库名称的原因。(这背后的原因提示:如果有人以某种方式获得了一个表的dbms密码怎么办?)
  • 我在这方面不是很在行,但我不认为在一个数据库可以做到的情况下保留两个独立的数据库是个好主意。就像您的情况一样,您没有使用主从或任何东西。所以,除非您有一些试图弥补的物理限制,否则将它们放入1个数据库中(使用表名前缀以避免名称冲突)
  • 上一点的原因与此同时出现。为一个数据库保留一个用户,或者有些人甚至出于奇怪的、某种程度上合理的原因保留两个用户,这是您应该遵循的安全措施。对于多个用户,您需要建立多个连接,这意味着对于每个页面加载,您将连接到dbms两次!简单数学2倍负载(是的,它消耗资源,每一行代码都消耗资源)简化它,想想一个男人,他需要步行去杂货店买你要的所有东西,一次只得到一件东西。如果你给他两个不同的杂货店,他将需要2倍的时间和精力来做同样的工作
  • 在您制作的任何应用程序上保留特定于数据库的用户通常是一种很好的做法。我甚至认为这是必要的。这就是在连接中保留必需的数据库名称的原因。(这背后的原因提示:如果有人以某种方式获得了一个表的dbms密码怎么办?)
  • 我在这方面不是很在行,但我不认为在一个数据库可以做到的情况下保留两个独立的数据库是个好主意。就像您的情况一样,您没有使用主从或任何东西。所以,除非您有一些试图弥补的物理限制,否则将它们放入1个数据库中(使用表名前缀以避免名称冲突)
  • 上一点的原因与此同时出现。为一个数据库保留一个用户,或者有些人甚至出于奇怪的、某种程度上合理的原因保留两个用户,这是您应该遵循的安全措施。对于多个用户,您需要建立多个连接,这意味着对于每个页面加载,您将连接到dbms两次!简单数学2倍负载(是的,它消耗资源,每一行代码都消耗资源)简化它,想想一个男人,他需要步行去杂货店买你要的所有东西,一次只得到一件东西。如果你给他两个不同的杂货店,他将需要2倍的时间和精力来做同样的工作

  • 我真的很感谢你的意见,尽管我不理解你文章的某些部分。如果您将彼此没有任何关系的内容组织到多个数据库中,维护站点不是更容易吗?如果你有一个包含50个或更多表的数据库,在phpmyadmin中浏览似乎很麻烦。@darkbecca如果你所有的博客表都是
    blog\u tablename
    ,而所有的论坛表都是
    forum\u tablename
    ,那么它们在phpmyadmin中是完全独立的。从某种意义上说,拥有你的论坛是件好事如果你的博客被破坏了。如果两者之间没有关系,则可以。但是使用惰性加载类型的想法。i、 e.在您真正需要连接数据库之前,不要连接数据库,并为两个表保留两个不同的用户。如果你只有一个用户,把它变成1db和一个connection我真的很感激你的输入,尽管我不理解你文章的某些部分。如果您将彼此没有任何关系的内容组织到多个数据库中,维护站点不是更容易吗?如果你有一个包含50个或更多表的数据库,在phpmyadmin中浏览似乎很麻烦。@darkbecca如果你所有的博客表都是
    blog\u tablename
    ,而所有的论坛表都是
    forum\u tablename
    ,那么它们在phpmyadmin中是完全独立的。从某种意义上说,拥有你的论坛是件好事如果你的博客被破坏了。如果两者之间没有关系,则可以。但是使用惰性加载类型的想法。i、 e.在您真正需要连接数据库之前,不要连接数据库,并为两个表保留两个不同的用户。如果您只有一个用户,请将其转换为1 db和一个连接