本文目錄一覽:
- 1、php常用擴展有哪些
- 2、開啟了php.ini里的pgsql模塊、安裝postgresql後、配置了環境變數但是運行phpinfo()里沒有pgsql模塊
- 3、thinkphp怎麼連接pgsql
- 4、如何安裝php的pgsql擴展
- 5、php連接postgray資料庫怎麼實現
- 6、windows下php無法支持pgsql,該怎麼解決
php常用擴展有哪些
這個是php擴展庫支持。
在php.ini裡面可以看到952行。
extension=php_rar.dll
;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
extension= php_memcache.dll
每一行前面分號去掉的表示開啟擴展庫的。
有些擴展庫是安裝的時候默認開啟的,有些需要手動開啟。
還有一些擴展庫需要自己去下載庫文件(要對應相應的版本)
下載的庫文件放在php安裝根目錄下面的ext目錄下面。當然這個目錄也是可以自己配置的。
開啟了php.ini里的pgsql模塊、安裝postgresql後、配置了環境變數但是運行phpinfo()里沒有pgsql模塊
下載phpstudy,在菜單php擴展裡面勾上pgsql即可配好了。phpstudy 2014擴展管理如圖。還支持nginx,iis等php版本任意切換
thinkphp怎麼連接pgsql
連接資料庫 ThinkPHP內置了抽象資料庫訪問層,把不同的資料庫操作封裝起來,我們只需要使用公共的Db類進行操作,而無需針對不同的資料庫寫不同的代碼和底層實現,Db類會自動調用相應的資料庫適配器來處理。目前的資料庫包括Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase以及PDO的支持,如果應用需要使用資料庫,必須配置資料庫連接信息,資料庫的配置文件有多種定義方式:
第一種 在項目配置文件裡面定義
return array(
‘DB_TYPE’= ‘mysql’,
‘DB_HOST’= ‘localhost’,
‘DB_NAME’=’thinkphp’,
‘DB_USER’=’root’,
‘DB_PWD’=”,
‘DB_PORT’=’3306’,
‘DB_PREFIX’=’think_’,
// 其他項目配置參數………
);
系統推薦使用該種方式,因為一般一個項目的資料庫訪問配置是相同的。該方法系統在連接資料庫的時候會自動獲取,無需手動連接。
可以對每個項目定義不同的資料庫連接信息,還可以在調試配置文件(Conf/debug.php)裡面定義調試資料庫的配置信息,如果在項目配置文件和調試模式配置文件裡面同時定義了資料庫連接信息,那麼在調試模式下面後者生效,部署模式下面前者生效。
第二種 使用DSN方式在初始化Db類的時候傳參數
$db_dsn = 「mysql://username:passwd@localhost:3306/DbName」;
$db = new Db($db_dsn);
該方式主要用於在控制器裡面自己手動連接資料庫的情況,或者用於創建多個資料庫連接。
第三種 使用數組傳參數
$DSN = array(
‘dbms’ = ‘mysql’,
‘username’ = ‘username’,
‘password’ = ‘password’,
‘hostname’ = ; ‘localhost’,
‘hostport’ = ‘3306’,
‘database’ = ‘dbname’
);
$db = new Db($DSN);
該方式也是用於手動連接資料庫的情況,或者用於創建多個資料庫連接。
第四種 在模型類裡面定義
protected $connection = array(
‘dbms’ = ‘mysql’,
‘username’ = ‘username’,
‘password’ = ‘password’,
‘hostname’ = ‘localhost’,
‘hostport’ = ‘3306’,
‘database’ = ‘dbname’
);
// 或者使用下面的定義
protected $connection = 」mysql://username:passwd@localhost:3306/DbName」;
如果在某個模型類裡面定義了connection屬性,則在實例化模型對象的時候,會使用該資料庫連接信息進行資料庫連接。通常用於某些數據表位於當前資料庫連接之外的其它資料庫。
ThinkPHP並不是在一開始就會連接資料庫,而是在有數據查詢操作的時候才會去連接資料庫。額外的情況是,在系統第一次操作模型的時候,框架會自動連接資料庫獲取相關模型類的數據欄位信息,並緩存下來。
(欄位緩存目錄:Runtime/Data/_fields)
ThinkPHP支持PDO方式,如果要使用PDO方式連接資料庫,可以參考下面的設置。
我們以項目配置文件定義為例來說明:
return array(
‘DB_TYPE’= ‘pdo’,
// 注意DSN的配置針對不同的資料庫有所區別 請參考PHP手冊PDO類庫部分
‘DB_DSN’= ‘mysql:host=localhost;dbname=think’,
‘DB_USER’=’root’,
‘DB_PWD’=”,
‘DB_PREFIX’=’think_’,
// 其他項目配置參數………
);
使用PDO方式的時候,要注意檢查是否開啟相關的PDO模塊。DB_DSN參數僅對PDO方式連接才有效。
如何安裝php的pgsql擴展
可以使用mysqlnd和mysql mysqli pdo_mysql 關係打比方說 mysqlnd是金屬,而mysql mysqli pdo_mysql只是金屬製品而已!
php連接postgray資料庫怎麼實現
php.ini中將extension=php_pgsql.dll前面的分號去掉,然後設置extension_dir指向php文件下的ext文件夾。
或者直接把將./php/libpq.dll(php文件夾下的libpq.dll)和./php/ext/php_pgsql.dll(ext文件夾下的php_pgsql.dll)這兩個dll文件複製到C盤system32下。
正常情況下這樣php就可以連接postgres了,但是我的仍然出錯,提示「Fatal error: Call to undefined function pg_connect()」,查看Apache的日誌,「PHP Startup: Unable to load dynamic library ‘****\\PHP5\\ext\\php_pdo_pgsql.dll」。
經過查找,在Apache中conf文件夾下的配置文件httpd.conf中添加 LoadFile “***/PHP5/libpq.dll”,位置在LoadModule後面即可。
(***為php安裝路徑)
測試代碼:
?php
$conn_string = “host=localhost port=5432 dbname=db_name user=your user password=your password” ;
$dbconn = pg_connect($conn_string);
if (!$dbconn)
echo “連接失敗!!!!!/r/n”;
else
echo “連接成功!!!!!/r/n”;
pg_close($dbconn);
?
user一般為安裝期間新建的用戶postgres
windows下php無法支持pgsql,該怎麼解決
初學postgresql,想安裝一個在本機測試一下,環境為windows xp + apache2 + php5(5.2.6) + postgresql8.4.一切安裝正常,但是再裝上phppgadmin測試時,顯示「您的 PHP 中沒有完整的資料庫支持」。apache錯誤日誌為「PHP Warning: PHP Startup: Unable to load dynamic library ‘C:/php/ext/php_pgsql.dll’」。多次在網上搜索解決方法,已完成以下操作:
1、修改php.ini
2、確認C:\php\ext\下php_pgsql.dll存在
3、修改path環境變數,添加了postgresql的bin目錄
4、將libpg.dll放至windows\system32下
5、重啟apache多次
不好意思,僅有的一點積分已經用光了,所以只好請大家多多支持了。
cmd下,cd到php所在目錄,之後在cmd下運行 php 看提示吧,卻啥lib它會提示你,需要啥去pgsql下cpoy到windows\system32下,你只複製一個libpg.dll是不夠的,好象複製好多個
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309809.html