我有以下字符串连接:
$string_connection = "host=localhost port=5432 user=postgres password=postgres";
$conn = pg_connect($string_connection );
稍后在我的代码中,我需要选择一个数据库:
pg_connect("dbname=my_database");
但是,我总是遇到以下错误:
Warning: pg_connect(): Unable to connect to PostgreSQL server: fe_sendauth: no password supplied in ..\class.databases.php on line 142
但是,在PHP.net的例子中,他们这样做。 另一个例子:
pg_query($conn,'\connect my_database');
为什么这不起作用?
当我使用PgAdmin进行备份时,我得到以下字符串:
SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;
DROP DATABASE my_database;
CREATE DATABASE my_database WITH ENCODING = 'UTF8' LC_COLLATE = 'Portuguese_Brazil.1252' LC_CTYPE = 'Portuguese_Brazil.1252';
ALTER DATABASE my_database OWNER TO postgres;
\connect my_database
当我尝试使用pg_query运行此脚本时,我有错误:
Warning: pg_query(): Query failed: ERRO: syntax error in "\" LINE 1: \connect my_database ^
我需要选择一个dabatase来创建一个模式,然后创建我的表...我不知道如何用Postgres做到这一点。
答案 0 :(得分:2)
添加" dbname = my_database"连接字符串,以便在连接时选择数据库。