将php连接到postgres
具体来说,我有一个运行PostgreSQL pgAdmin III的虚拟机,我正在尝试使用红豆连接到它,但没有成功。它看起来确实连接了,但是当我发送一些东西给数据库存储时,我得到了一个错误。。。这是我的密码:将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',
<?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只是一个占位符,可能没用担心,我只是不想给出那个信息。不过,这个办法奏效了!非常感谢你。