Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数中的PHP、DB连接。独立连接是强制性的吗?_Php_Function_Postgresql_Connection - Fatal编程技术网

函数中的PHP、DB连接。独立连接是强制性的吗?

函数中的PHP、DB连接。独立连接是强制性的吗?,php,function,postgresql,connection,Php,Function,Postgresql,Connection,我在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; } //----一般逻

我在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以供其自身使用时,它就可以工作了。如果这是解决方案,对性能不是很坏吗?或者有合适的方法吗?

将连接变量
$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;
}

您需要在函数
全局$dbconn中访问
$dbconn
将执行其他操作,您可以将var作为函数的参数,并在每次调用函数时传递数据。@FDL这就是我要找的。谢谢