【问题标题】:PHP, DB connection in Function. Is Separate Connection Mandatory?PHP,函数中的数据库连接。是否必须单独连接?
【发布时间】:2014-01-07 13:58:34
【问题描述】:

我在我的 PHP 文件中使用了一个在 PHP 文件中定义的函数。他的代码结构如下所示

//--- 数据库连接

$dbconn = pg_connect(...

//函数定义

function myfunction(){
  $f_stmt = '.....'
  $f_result = pg_query_params($dbconn,$f_stmt, ....
  $val = pg_fetch_result($f_result, 'COL_VAL');
  return $val;
}

//---- 一般逻辑

  $stmt = '....'
  $result = pg_query_params($dbconn,$stmt, ....

   while ($row = pg_fetch_assoc($result)) {
      echo myfunction()
   }

当我尝试在函数 $dbconn 中使用相同的连接(如上面的 tje 示例)时,我收到连接错误。当我在函数内部创建一个新连接 $dbconn2 以供自己使用时,它可以工作。如果这是解决方案,对性能不是很不利吗?还是有合适的方法?

【问题讨论】:

  • 您需要在函数顶部的函数global $dbconn; 内(在其他代码之前)使$dbconn 可以访问
  • 否则可以把var作为函数的参数,每次调用函数时传递数据。
  • @FDL 这正是我想要的。谢谢

标签: php function postgresql connection


【解决方案1】:

将您的连接变量$dbconn 设置为全局变量,

function myfunction(){
  global $dbconn;
  $f_stmt = '.....'
  $f_result = pg_query_params($dbconn,$f_stmt, ....
  $val = pg_fetch_result($f_result, 'COL_VAL');
  return $val;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 2020-03-16
    • 2017-07-30
    • 1970-01-01
    • 2022-08-08
    • 2018-01-21
    • 1970-01-01
    相关资源
    最近更新 更多