初學(xué)postgresql,想安裝一個(gè)在本機(jī)測(cè)試一下,環(huán)境為windows xp + apache2 + php5(5.2.6) + postgresql8.4.一切安裝正常,但是再裝上phppgadmin測(cè)試時(shí),顯示“您的 PHP 中沒有完整的數(shù)據(jù)庫(kù)支持”。apache錯(cuò)誤日志為“PHP Warning: PHP Startup: Unable to load dynamic library 'C:/php/ext/php_pgsql.dll'”。多次在網(wǎng)上搜索解決方法,已完成以下操作:
在中衛(wèi)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,中衛(wèi)網(wǎng)站建設(shè)費(fèi)用合理。
1、修改php.ini
2、確認(rèn)C:\php\ext\下php_pgsql.dll存在
3、修改path環(huán)境變量,添加了postgresql的bin目錄
4、將libpg.dll放至windows\system32下
5、重啟apache多次
不好意思,僅有的一點(diǎn)積分已經(jīng)用光了,所以只好請(qǐng)大家多多支持了。
cmd下,cd到php所在目錄,之后在cmd下運(yùn)行 php 看提示吧,卻啥lib它會(huì)提示你,需要啥去pgsql下cpoy到windows\system32下,你只復(fù)制一個(gè)libpg.dll是不夠的,好象復(fù)制好多個(gè)
什么教數(shù)據(jù)全部歸0
我們假設(shè)數(shù)據(jù)庫(kù)中有三張表。
a,b,c,每個(gè)表有幾個(gè)字段,也有很多數(shù)據(jù),
那么你的問題到底是如下哪種
1:刪除掉該數(shù)據(jù)庫(kù)中的所有表,a,b,c
2:把所有表的數(shù)據(jù)都清空,表結(jié)構(gòu)保留
3:把表中所有的數(shù)據(jù)都變?yōu)檎螖?shù)值0?
補(bǔ)充1:
如果你是3的問題的話,實(shí)現(xiàn)起來比較繁瑣,并且我也不是很理解為什么要這樣做,感覺挺沒什么意義的,如果方便的話可以告訴我你的目的是什么,為什么要把所有的數(shù)據(jù)都變成0,或許可以換些辦法
補(bǔ)充2:
聽你的描述你可能是只有一個(gè)表,表中有很多的字段,每個(gè)字段都代表一個(gè)投票項(xiàng)目,而表中的數(shù)據(jù)記錄,其實(shí)只有一條?
你可以通過pg_num_fields獲得字段數(shù)量,在通過pg_field_name獲得字段名稱,依次運(yùn)行update
$dbconn = pg_connect("host=localhost");
$res = pg_query($dbconn, "select * from your_talbe_name");
$i = pg_num_fields($res);
for ($j = 0; $j $i; $j++) {
$fieldname = pg_field_name($res, $j);
pg_query($dbconn, "update your_talbe_name set $fieldname=0");
}
另外,我個(gè)人認(rèn)為你這樣實(shí)現(xiàn)投票的管理不是很好,投票項(xiàng)目一多很難管理,建議
create table xxx
(
id serial primary key,
name text,
num int
)
把投票項(xiàng)目的名字也就是你原來列的名稱放到name字段中,num則為投票數(shù),這樣以后再有這種問題,一個(gè)update xxx set num=0就OK了,管理起來也方便些。
連接數(shù)據(jù)庫(kù) ThinkPHP內(nèi)置了抽象數(shù)據(jù)庫(kù)訪問層,把不同的數(shù)據(jù)庫(kù)操作封裝起來,我們只需要使用公共的Db類進(jìn)行操作,而無需針對(duì)不同的數(shù)據(jù)庫(kù)寫不同的代碼和底層實(shí)現(xiàn),Db類會(huì)自動(dòng)調(diào)用相應(yīng)的數(shù)據(jù)庫(kù)適配器來處理。目前的數(shù)據(jù)庫(kù)包括Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase以及PDO的支持,如果應(yīng)用需要使用數(shù)據(jù)庫(kù),必須配置數(shù)據(jù)庫(kù)連接信息,數(shù)據(jù)庫(kù)的配置文件有多種定義方式:
第一種 在項(xiàng)目配置文件里面定義
return array(
'DB_TYPE'= 'mysql',
'DB_HOST'= 'localhost',
'DB_NAME'='thinkphp',
'DB_USER'='root',
'DB_PWD'='',
'DB_PORT'='3306',
'DB_PREFIX'='think_',
// 其他項(xiàng)目配置參數(shù)………
);
系統(tǒng)推薦使用該種方式,因?yàn)橐话阋粋€(gè)項(xiàng)目的數(shù)據(jù)庫(kù)訪問配置是相同的。該方法系統(tǒng)在連接數(shù)據(jù)庫(kù)的時(shí)候會(huì)自動(dòng)獲取,無需手動(dòng)連接。
可以對(duì)每個(gè)項(xiàng)目定義不同的數(shù)據(jù)庫(kù)連接信息,還可以在調(diào)試配置文件(Conf/debug.php)里面定義調(diào)試數(shù)據(jù)庫(kù)的配置信息,如果在項(xiàng)目配置文件和調(diào)試模式配置文件里面同時(shí)定義了數(shù)據(jù)庫(kù)連接信息,那么在調(diào)試模式下面后者生效,部署模式下面前者生效。
第二種 使用DSN方式在初始化Db類的時(shí)候傳參數(shù)
$db_dsn = “mysql://username:passwd@localhost:3306/DbName”;
$db = new Db($db_dsn);
該方式主要用于在控制器里面自己手動(dòng)連接數(shù)據(jù)庫(kù)的情況,或者用于創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)連接。
第三種 使用數(shù)組傳參數(shù)
$DSN = array(
'dbms' = 'mysql',
'username' = 'username',
'password' = 'password',
'hostname' = ; 'localhost',
'hostport' = '3306',
'database' = 'dbname'
);
$db = new Db($DSN);
該方式也是用于手動(dòng)連接數(shù)據(jù)庫(kù)的情況,或者用于創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)連接。
第四種 在模型類里面定義
protected $connection = array(
'dbms' = 'mysql',
'username' = 'username',
'password' = 'password',
'hostname' = 'localhost',
'hostport' = '3306',
'database' = 'dbname'
);
// 或者使用下面的定義
protected $connection = ”mysql://username:passwd@localhost:3306/DbName”;
如果在某個(gè)模型類里面定義了connection屬性,則在實(shí)例化模型對(duì)象的時(shí)候,會(huì)使用該數(shù)據(jù)庫(kù)連接信息進(jìn)行數(shù)據(jù)庫(kù)連接。通常用于某些數(shù)據(jù)表位于當(dāng)前數(shù)據(jù)庫(kù)連接之外的其它數(shù)據(jù)庫(kù)。
ThinkPHP并不是在一開始就會(huì)連接數(shù)據(jù)庫(kù),而是在有數(shù)據(jù)查詢操作的時(shí)候才會(huì)去連接數(shù)據(jù)庫(kù)。額外的情況是,在系統(tǒng)第一次操作模型的時(shí)候,框架會(huì)自動(dòng)連接數(shù)據(jù)庫(kù)獲取相關(guān)模型類的數(shù)據(jù)字段信息,并緩存下來。
(字段緩存目錄:Runtime/Data/_fields)
ThinkPHP支持PDO方式,如果要使用PDO方式連接數(shù)據(jù)庫(kù),可以參考下面的設(shè)置。
我們以項(xiàng)目配置文件定義為例來說明:
return array(
'DB_TYPE'= 'pdo',
// 注意DSN的配置針對(duì)不同的數(shù)據(jù)庫(kù)有所區(qū)別 請(qǐng)參考PHP手冊(cè)PDO類庫(kù)部分
'DB_DSN'= 'mysql:host=localhost;dbname=think',
'DB_USER'='root',
'DB_PWD'='',
'DB_PREFIX'='think_',
// 其他項(xiàng)目配置參數(shù)………
);
使用PDO方式的時(shí)候,要注意檢查是否開啟相關(guān)的PDO模塊。DB_DSN參數(shù)僅對(duì)PDO方式連接才有效。