【问题标题】:What's the pg equivalent of mysql_connect + mysql_select_db combo?mysql_connect + mysql_select_db 组合的 pg 等效项是什么?
【发布时间】:2011-11-08 01:39:50
【问题描述】:

希望这个问题不要太简单,我尝试过postgresql 和mysql 的php 页面,但不是很明白。

如果你在 MySQL 中使用 PHP,你可以这样做:

$_connectionID = @mysql_connect(
        $dbConnectionConfig['host'],
        $dbConnectionConfig['user'],
        $dbConnectionConfig['pass'],
        true
    );
@mysql_select_db($dbName, $_connectionID);

嗯,两个小问题:

  1. 执行上述操作有什么意义?为什么不使用mysql_pconnect 一次性完成所有操作?

  2. true 中的mysql_connect 有什么作用?它是否只允许您同时打开多个数据库连接?

现在,您将如何在 PostgreSQL 中执行此操作?我知道pg_connect,但这需要指定一个数据库名称,所以它更像mysql_pconnect。另外,我知道 mysql php 语法中的@ 基本上在失败的情况下隐藏了错误。 @ 也适用于 postgres 吗?

感谢您的宝贵时间,祝您有美好的一天。

【问题讨论】:

    标签: php mysql postgresql


    【解决方案1】:
    1. 没有理由不这样做
    2. 您不需要true
      • true 仅在它是新的连接链接并且您之前已经建立过链接时才需要。
    3. 删除 @ 符号,因为它们会阻止任何可能出现的 PHP 警告

    【讨论】:

    • 那么,Postgres PHP 没有办法连接到服务器然后连接到数据库吗?另外,将PGSQL_CONNECT_FORCE_NEW 传递给pg_connect 与将True 传递给mysql_connect 相同吗?感谢您的宝贵时间。
    • 在 PostgreSQL 中,您总是连接到数据库,从不连接到数据库集群。如果您不知道要连接哪个数据库,则有默认维护数据库“postgres”。
    • @ErwinBrandstetter 我明白了,谢谢,这是有道理的。呃,这有点无关紧要,但我宁愿不提出新问题。我知道mysql_real_escape_string 的等价物是pg_escape_stringpg_escape_bytea,但是如何处理将数据插入常规列和 bytea 列的查询?您是否将查询传递给pg_escape_bytea,然后传递给pg_escape_string
    • 为什么不把它变成一个新问题呢?只要问题经过充分研究和制定并且以前没有被问过,您就可以问尽可能多的问题。我不是 PHP 专家。
    猜你喜欢
    • 1970-01-01
    • 2010-09-14
    • 2010-11-18
    • 2010-12-07
    • 2012-12-27
    • 2018-11-12
    • 2012-10-16
    • 2010-10-01
    • 2016-03-20
    相关资源
    最近更新 更多