Php 完全在本地主机中运行,但不在postgreSQL的live server中运行
我的代码看起来像这样Php 完全在本地主机中运行,但不在postgreSQL的live server中运行,php,database,postgresql,Php,Database,Postgresql,我的代码看起来像这样 $host = "host=localhost"; $port = "port=5432"; $dbname = "dbname=test_db"; $credentials = "user=postgres password="; $db = pg_connect( "$host $port $dbname $credentials" ); $query = "INSERT INTO table_test_som(uid, b
$host = "host=localhost";
$port = "port=5432";
$dbname = "dbname=test_db";
$credentials = "user=postgres password=";
$db = pg_connect( "$host $port $dbname $credentials" );
$query = "INSERT INTO table_test_som(uid, book_status, book_datetime, dom_id, from_date, to_date, from_time
, to_time, event) VALUES ('4', '1', '2016-07-19 12:29:42', '27', '2016-07-22', '2016-07-22', '11:30', '12:00', 'Booking_vijay')";
$result = pg_query($query);
if (!$result) {
$errormessage = pg_last_error();
echo "Error with query: " . $errormessage;
exit();
}
printf ("These values were inserted into the database");
pg_close();
- 在localhost中,我的代码完全运行,当我在服务器中执行时,它将显示如下错误: 查询错误:错误:序列表\u test\u som的权限被拒绝
- 这不应该发生在postgres用户身上。我打赌在live server上尝试时,您已经更改了此代码
$credentials = "user=postgres password=";
实际用户没有序列的权限。你可以用电脑来修理它
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public to my_user;
注意用您在php代码中使用的实际用户名替换my_用户
如果所有这些都不适用于您,那么唯一的选择就是对每个导致问题的表执行此查询。对于postgres用户,这不应该发生。我打赌在live server上尝试时,您已经更改了此代码
$credentials = "user=postgres password=";
实际用户没有序列的权限。你可以用电脑来修理它
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public to my_user;
注意用您在php代码中使用的实际用户名替换my_用户
如果所有这些都不适用于您,则唯一的选项是对每个导致问题的表执行此查询。是否更改了数据库凭据以匹配live server?是的,我使用server DB table name和DB凭据进行了更改。但仍然无法在服务器中工作。请尝试使用此$result=pg_查询($db,$query);if($result){//success}else{echo pg_last_error($db);}无兄弟。这是一个服务器权限错误。是否更改了数据库凭据以匹配live server?是的,我使用服务器DB表名和DB凭据进行了更改。但仍然无法在服务器中工作。请尝试使用此$result=pg_查询($db,$query);if($result){//success}else{echo pg_last_error($db);}无兄弟。这是一个服务器权限错误。当我使用特定的表名代替上面查询中的所有表名时,它将正常工作。上面的查询生成了一个错误。当我在上面的查询中使用特定的表名代替所有表名时,它就会正常工作。上面的查询生成一个错误。