我有一个运行PostgreSQL的VM(pgAdmin III具体),我试图使用red bean连接到它但没有成功。它似乎连接,但当我发送一些东西为DB存储我得到一个错误...这是我的代码:
<?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 );
?>
我认为它对代码没有任何意义。这是抛出的错误:
&#34;致命错误:未捕获的异常&#39; PDOException&#39;有消息&#39;可以 没有连接到数据库(mydb)。&#39; ...&#34;
答案 0 :(得分:0)
以下是需要考虑的一些要点:
“代码似乎连接”是什么意思?消息显示“无法连接......”R :: setup和R :: dispense调用不会尝试连接。 R :: store调用尝试连接。这就是你的错误弹出的地方,我想。
正如@ChrisForrence的评论所问:你是否在与db服务器相同的机器上运行脚本?如果不是,您必须在连接字符串中更改“localhost”。
您可以使用标准的postgres cli工具(psql)进行连接吗?
您是否安装了PDO postgresql驱动程序?
您是否在SELinux环境中运行,并且您的脚本是否由apache进程运行?如果是这样,apache进程的安全上下文是否允许它与postgresql服务器建立连接?
检查这些问题。
答案 1 :(得分:0)
这看起来有点奇怪:
R::setup('pgsql:host=localhost;dbname=mydb',
'(DBUser)','(MyPassword)');
尝试删除DBUser
和MyPassword
周围的括号。
如果仍然无法解决问题,那么你的php可能没有安装php5-pgsql。
您可以使用此命令安装它(假设您的服务器是debian风格):
sudo apt-get install php5-pgsql