0

我的 PHP 脚本试图将 .sql 文件导入 postgres DB(Cent OS)。

要从它使用的 PHP 脚本连接数据库:

$sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
$aDescriptors = array(
    0 => array('pipe', 'r'),
    1 => STDOUT, 
    2 => STDERR
);
$ahPipes = null;
$hProcess = @proc_open($sCMD, $aDescriptors, $ahPipes);
if (!is_resource($hProcess)) fail('unable to start pgsql');

它向我显示错误:“无法启动 pgsql”。

当我从 proc_open 中删除 @ 符号时,它会显示错误消息....

" proc_open() [<a href='function.proc-open'>function.proc-open</a>]: Descriptor item must be either an array or a File-Handle in <b>/home/nominati/public_html/Nominatim/utils/setup.php"

虽然 $aDescriptors 已经是一个数组。是否有任何与用户权限相关的问题?

提前致谢。

4

1 回答 1

2

尝试删除标准错误:

$aDescriptors = array(
    0 => array('pipe', 'r'),
    1 => STDOUT
//    2 => STDERR
);

我不知道为什么,但这让它可以在我的 Debian 机器上运行。

于 2013-01-22T15:51:04.177 回答