我使用PostgreSQL 9.1與postGIS 2.0。也是Apache 2.2.22和PHP 5.3.13。我正在嘗試爲PHP的PostgreSQL設置PDO。我也使用Windows 7 根據這一this我行,我檢查我的php.ini,我發現這條線extension=php_pgsql.dll
配置爲pdo和postgesql
但根據this(運行時配置),我必須設置一個DSN在我的php.ini 。我實際上沒有得到我必須做的事情。爲什麼。我嘗試在php.ini中寫入類似pdo.dsn.'pgsql:host=localhost;port=5432'
的內容,然後重新啓動Apache。
之後,我創建了一個新的php文件來測試PDO。 這是代碼
try {
$DBH = new PDO("pgsql:host=localhost;port=0000;dbname=blah;user=blah;password=blah");
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(PDOException $e) {
echo" sorry man! ";
echo $e->getMessage();
}
$name="frouto";
$STH = $DBH -> prepare("SELECT * FROM controller WHERE c_name LIKE :name;");
$STH->bindParam(':name', $name);
$STH->execute();
$result = $STH->fetchAll(PDO::FETCH_ASSOC);
只是非常簡單的測試PDO。這根本不起作用。也不打印異常錯誤。我猜運行時配置是錯誤的。而dsn也是錯誤的。我需要做些什麼來解決它們?
謝謝
@ Zak Hi。是的,我檢查並運行良好。我可以通過使用'pg_connect'連接,所以我想我沒問題。是的,真正的端口是5432,我只是選擇「隱藏」,以及用戶名,passowrd等。所以,只是爲了澄清,我不必在我的php.ini文件中添加任何東西?那麼問題是什麼?我沒有得到它 – slevin 2013-04-23 22:27:05
你也可以使用命令行中的相關登錄憑據來運行你的查詢嗎?確保您有權運行查詢。 – Zak 2013-04-23 23:56:09
另外,在$ results上做一個print_r ..那是什麼意思? – Zak 2013-04-23 23:58:04