Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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连接到postgres_Php_Database_Postgresql_Connection - Fatal编程技术网

将php连接到postgres

将php连接到postgres,php,database,postgresql,connection,Php,Database,Postgresql,Connection,具体来说,我有一个运行PostgreSQL pgAdmin III的虚拟机,我正在尝试使用红豆连接到它,但没有成功。它看起来确实连接了,但是当我发送一些东西给数据库存储时,我得到了一个错误。。。这是我的密码: <?php error_reporting(E_ALL); ini_set('display_errors', '1'); include 'php/third-party/rb.php'; R::setup('pgsql:host=localhost;dbname=mydb',

具体来说,我有一个运行PostgreSQL pgAdmin III的虚拟机,我正在尝试使用红豆连接到它,但没有成功。它看起来确实连接了,但是当我发送一些东西给数据库存储时,我得到了一个错误。。。这是我的密码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include 'php/third-party/rb.php';
R::setup('pgsql:host=localhost;dbname=mydb',
        '(DBUser)','(MyPassword)');
$book = R::dispense( 'book' );
$book->title = 'Learn to Program';
$book->rating = 10;
$book['price'] = 29.99;
$id = R::store( $book );
?>
我不认为它与代码有任何关系。下面是引发的错误:

致命错误:未捕获的异常“PDOException”,消息为“可能” 未连接到数据库mydb。“


以下是需要考虑的几点:

代码显示为连接是什么意思?消息说无法连接。。。R::setup和R::dispense调用不尝试连接。存储调用尝试连接。我想这就是你的错误出现的地方

正如@ChrisForrence的评论所问:您是否在与db服务器相同的机器上运行脚本?如果没有,则必须更改连接字符串中的“localhost”

您可以使用标准postgres cli工具psql进行连接吗

您是否安装了PDO postgresql驱动程序

您是否在SELinux环境中运行,脚本是否由apache进程运行?如果是,apache进程的安全上下文是否允许它连接到postgresql服务器


检查这些问题。

这看起来有点奇怪:

R::setup('pgsql:host=localhost;dbname=mydb',
    '(DBUser)','(MyPassword)');
尝试删除DBUser和MyPassword周围的括号

如果仍然无法修复,那么您的php可能没有安装php5 pgsql

假设您的服务器是debian风格的,您可以使用以下命令安装它:

sudo apt-get install php5-pgsql

您的PHP脚本是否与PostgreSQL在同一台机器上运行?这。。。这是最重要的一点。你是漏掉了,还是申请了?非常感谢!就是这样!DBuser和Mypassword只是一个占位符,可能没用担心,我只是不想给出那个信息。不过,这个办法奏效了!非常感谢你。