我下载并安装了随Stackbuilder一起提供的PostgreSQL 9.2.3。
我使用PostgreSQL Stackbuilder安装Apache(2.2.22)& PHP(5.4.5)。
现在我正在尝试使用PDO连接到数据库,但我收到driver not found
错误。
我没有评论extension=php_pgsql.dll
&我的php.ini文件中有extension=php_pdo_pgsql.dll
。
我的phpinfo();功能显示它们已启用。
我注意到的主要问题是,在我的 php \ 目录中,没有包含这些文件的 ext \ 目录。我原以为这些文件会自动安装到 php \ 子目录。
这些扩展可以存储在哪里;我需要指定一个绝对路径让php找到它们吗?
更新 所以我进入php.ini并启用了启动错误。当我启动命令行php.exe时,我得到错误,说明php_pgsql.dll&找不到php_pdo_pgsql.dll。
看起来他们试图在D:驱动器上引用它们,我没有。我将所有内容安装到E:驱动器上的同一目录中。我无法在任何地方找到扩展名(也不能用php)。
答案 0 :(得分:6)
在Wamp(windows)......
复制C:\wamp\bin\php\php5.x.xx\libpq.dll
粘贴在C:\Windows\System32\
答案 1 :(得分:1)
sCommandText = "exec xp_cmdShell 'bcp.exe'"+Database + ".." + TableName + " in " +
FileName + " -c -q -U " + UserId + " -P " + Password + "-t ";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sCommandText;
return cmd.ExecuteNonQuery();
请检查
extension=php_pdo_pgsql.dll
同时检查
C:\wamp\bin\apache\apache2.4.9\bin\php.ini
添加扩展行后,重新启动Apache,它将起作用。