为什么要指定显式数据库连接?

时间:2010-01-12 05:17:26

标签: php postgresql

我正在为自己制作一个简单的博客,在阅读PHP手册时,我发现了http://us2.php.net/manual/en/function.pg-query.php

它说

  

资源pg_query([资源   $ connection],string $ query)

     

...

     

注意:虽然可以省略连接,但不推荐使用,因为   它可能是很难找到的原因   脚本中的错误。

为什么不使用最后一个连接?我从不打算每个PHP脚本打开超过1个连接,那么这怎么会给我带来错误呢?

3 个答案:

答案 0 :(得分:13)

哈。 “我从不计划每个PHP脚本打开多个连接。”

我记得我最后一次这么说。它回来了'应该三个。那时我还是个年轻的鞭子,就像你自己一样。充满了吐和醋。如果我不需要,为什么要这样做呢?这是我们的小网络创业公司的主流智慧。 “完成它吧!”我们大喊大叫。另外,我们在腰带上戴洋葱。

嗯...时间到了,我在主站点添加了一个快速的小统计数据库。没什么特别的,只是想要分别跟踪一些统计数据。我想我会重新使用数据库包装器。它是时间的好包装!抽象出我需要的所有数据库功能。但是当我在那里添加它时,一些古怪的事情开始发生。它没有意义。我有两个独立的数据库包装器对象......两个独立的连接!他们怎么会相互影响?但随后用户将被随机注销。会话会失败。有时密钥更新会变坏。有些查询在错误的数据库上运行。狗和猫开始一起生活!这是大规模的歇斯底里!

如果我原来只指定了那个连接器。如果我只保留它们,那么pg_query会知道使用哪一个。可以防止如此多的数据丢失。这么多好的元组......这么好的数据。丢失。丢失...

*嗅探*

答案 1 :(得分:1)

这是为了适应那些需要显式调用各种数据库的人。如果不这样做,请忽略它:)某些脚本可以在本地和远程数据库上运行,而其他脚本可以在多个本地或多个远程数据库上运行。

答案 2 :(得分:0)

也许这是由于论证的顺序?如果它是关于明确使用连接资源的建议,那么相同的注释将在mysql_query()上。除非PostgreSQL有特定内容,否则我不知道。

简而言之,我没有看到任何问题忽略单连接应用程序的连接参数。

相关问题