一、數據查詢php
i. DB_common::getAll() DB_FETCHMODE_ORDERED 、 DB_FETCHMODE_ASSOC 、 DB_FETCHMODE_OBJECThtml
ii. DB_common::getRow()mysql
iii. DB_common::getAssoc()sql
iv. DB_common::getCol()數據庫
v. DB_common::getOne()後端
1 <!-- 2 PHP PEAR DB類部分函數說明:更多函數可參考pear/db.php和pear/db/common.php 3 connect():數據庫連接函數 4 query():SQL語句執行函數 5 execute():SQL語句執行函數,與query()函數使用方式略有不一樣,具體可參考pear/db/common.php文件 6 setFetchMode():設定返回記錄集是數字索引數組仍是關聯數組或者對象 7 numRows():返回記錄集有多少行 8 numCols():返回記錄集有多少列 9 free():釋放記錄集 10 disconnect():關閉數據庫連接 11 affectedRows():操做影響的記錄行數 12 isManip():判斷一個查詢是數據處理仍是數據定義操做 13 14 --> 15 16 <?php 17 //引入PDB庫 18 require_once("DB.php"); 19 //設定訪問的數據庫、登陸名、密碼、主機 20 $userName = 'root'; 21 $password = 'a12345'; 22 $hostName = 'localhost'; 23 $dbName = 'db_chengxl'; 24 //設定DSN參數,並進行數據庫連接,我鏈接的數據庫爲Mysql 25 $dsn = "mysql://$userName:$password@$hostName/$dbName"; 26 27 $dbCon = DB::connect($dsn); 28 //錯誤處理 29 if (DB::isError($dbCon)) { 30 die ($dbCon->getMessage()); 31 } 32 33 //建立數據表,並插入測試數據 34 /* 35 $sql = "CREATE TABLE cxl (" . 36 "`id` INT( 11 ) UNSIGNED NOT NULL ," . 37 "`name` VARCHAR( 30 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL ," . 38 "`age` INT( 2 ) NOT NULL ," . 39 "`birthday` VARCHAR( 30 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL ," . 40 "`sex` INT( 1 ) NOT NULL ," . 41 "PRIMARY KEY ( `id` )" . 42 ") ENGINE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci"; 43 44 $result = $dbCon->query($sql); 45 46 if (DB::isError($result)) { 47 die ($result->getMessage()); 48 49 } 50 51 $sql = "insert into cxl(id,name,age,birthday,sex) values(1,'cxl',1,'2009-05-13',1),(2,'cxl',1,'2009-05-13',1),(3,'cxl',1,'2009-05-13',1)"; 52 53 $result = $dbCon->query($sql); 54 55 if (DB::isError($result)) { 56 die ($result->getMessage()); 57 }*/ 58 59 60 //setFetchMode函數是PHP PEAR DB讓用戶設定返回記錄集是數字索引數組仍是關聯數組或者對象, 61 //此處我設定爲關聯數組的形式。默認DB_FETCHMODE_ORDERED模式, 62 //其餘兩種模式爲DB_FETCHMODE_ASSOC與DB_FETCHMODE_OBJECT 63 64 //獲取數據 65 /* 66 $dbCon->setFetchMode(DB_FETCHMODE_ASSOC); 67 68 $sql = "select * from cxl"; 69 70 $result = $dbCon->query($sql); 71 72 73 if (DB::isError($result)) { 74 die ($result->getMessage()); 75 } 76 77 for ($i = 0; $i < $result->numRows(); $i++) { 78 $info = &$result->fetchRow(); 79 80 echo "name:" . $info['name']; 81 echo "birthday:" . $info['birthday'] . "<br>"; 82 } 83 */ 84 85 86 87 //總數 88 /* 89 * $colCount = $result->numCols(); 90 * echo "<tr><td colspan=\"".$colCount."\">共找到".$result->numRows()."位用戶</td></tr>"; 91 */ 92 93 94 //function &getOne($query, $params = array()) 95 //執行查詢,並返回結果集中第一行第一列的數據。$params是參數值,若是後端數據庫支持,將調用prepare/execute來使用這些參數。 96 97 /* 98 $sql = "select * from cxl"; 99 $last = $dbCon->getOne($sql); 100 if(DB::isError($last)){ 101 echo "出錯:".DB::errorMessage($last); 102 } 103 echo "id:".$last;*/ 104 105 //function &getAll($query, $fetchmode = DB_FETCHMODE_DEFAULT, $params = array()) 106 //返回包含結果集中所有記錄的數組。注意,若是你的結果集很大,不要使用這個函數。 107 /* 108 $sql ="select * from cxl limit 1000"; 109 $list = $dbCon->getAll($sql); 110 if(DB::isError($list)){ 111 die( "數據庫錯誤:".DB::errorMessage($list)); 112 } 113 for ($i=0;$i<count($list);$i++){ 114 $user = $list[$i]; 115 echo "<tr>"; 116 for($j=0;$j<count($user);$j++){ 117 echo "<td>".$user[$j]."</td>"; 118 } 119 echo "</tr>"; 120 } 121 */ 122 123 124 //function &getCol($query, $col = 0, $params = array()) 125 //執行查詢,並返回包含結果集中指定字段列的值的數組。 126 //$col是要返回的列的索引,能夠是整數,或者是關鍵字段名。 127 /*$sql = "select id ,age,name from cxl order by age desc limit 100"; 128 $row = $dbCon->getCol($sql,1); 129 if(DB::isError($row)){ 130 echo "出錯:".DB::errorMessage($row); 131 } 132 for($i=0;$i<count($row);$i++){ 133 echo "<tr>$row[$i]</tr>"; 134 }*/ 135 136 137 //function &getRow($query, $fetchmode = DB_FETCHMODE_DEFAULT, $params = array()) 138 //執行查詢,請返回結果集的第一條記錄。 139 //$fetchmod 指定fetch模式,若是省略,使用缺省模式。 140 141 /* 142 $sql = "select * from cxl order by id desc"; 143 $row = $dbCon->getRow($sql); 144 if(DB::isError($row)){ 145 echo "出錯:".DB::errorMessage($row); 146 } 147 for($i=0;$i<count($row);$i++){ 148 echo "<td>$row[$i]</td>"; 149 } 150 */ 151 152 153 //function &getAssoc($query, $force_array = false, $params = array()) 154 //執行查詢,並返回一個關聯數組。 155 //$force_arry 強制返回數組。若是true,那麼即便你的結果集裏只有2個字段,那麼關鍵字段對應的值也是一個只有一個元素的 156 //數組。若是false,那麼關鍵字段對應的值是一個標量了。 157 /* 158 $sql = "select id,name,age from cxl limit 100"; 159 $userinfo = $dbCon->getAssoc($sql); 160 if (DB::isError($userinfo)) { 161 die("錯誤!" . DB::errorMessage($userinfo)); 162 } 163 //var_dump($userinfo); 164 if (empty($userinfo)) { 165 echo "warning:NO users!"; 166 return; 167 168 } 169 170 $info = $userinfo['2']; 171 if (empty($info)) { 172 echo "沒有這個用戶信息!"; 173 } 174 print_r($info); 175 //var_dump($info); 176 */ 177 178 179 180 //自動增加(Sequences) 181 //Sequences 爲數據行提供獨一無二的ID標識。若是熟悉MySQL之類的話,能夠把它想象爲AUTO_INCREMENT.它很是簡單, 182 //首先你獲取一個ID,而後在這個ID所在的行插入你所須要記錄的數據。能夠爲你的表設置更多的Sequences, 183 //只須要保證在任何特殊的表中都使用同樣的sequence就行。 184 185 // Get an ID (if the sequence doesn't exist, it will be created) 186 $id = $dbCon->nextId(cxl); 187 $sql = "insert into cxl(id,name,age,birthday,sex) values($id,'cxl',1,'2009-05-13',1)"; 188 189 // Use the ID in your INSERT query 190 //$res = $dbCon->query("INSERT INTO cxl (id,name) VALUES ($id,'foo')"); 191 $res = $dbCon->query($sql); 192 if(DB::isError($res)){ 193 echo "出錯:".DB::errorMessage($res); 194 } 195 196 echo "<tr><td>當前插入數據的ID:$id</td></tr>"; 197 198 199 200 //釋放 201 $result->free(); 202 //關閉鏈接 203 $dbCon->disconnect(); 204 205 ?>
二、數據插入、更新:autoExecute()數組
1 <?php 2 //引入PDB庫 3 require_once("DB.php"); 4 //設定訪問的數據庫、登陸名、密碼、主機 5 $db = &DB::connect('mysql://root:a12345@localhost/db_chengxl'); 6 //錯誤處理 7 if (DB::isError($db)) { 8 die ($db->getMessage()); 9 } 10 $table_name = 'user'; 11 12 //插入的數據 13 $fields_values = array( 14 'id' => '1', 15 'name' => 'Darlin', 16 'country' => 'Acewill', 17 ); 18 //修改的數據 19 $fields1_values = array( 20 // 'id' => '1', 21 // 'name' => 'Darlin', 22 'country' => 'ACEWILL'//這裏填寫但願修改後的數據, 23 ); 24 //Using autoExecute() in insert mode 25 //$res = $db->autoExecute($table_name, $fields_values, DB_AUTOQUERY_INSERT); 26 27 //Using autoExecute() in update mode 28 $res = $db->autoExecute($table_name, $fields1_values, DB_AUTOQUERY_UPDATE); 29 30 //用這個方法沒有效果 31 //$res = $db->autoExecute($table_name, $fields_values, DB_AUTOQUERY_UPDATE, "country = 'Japan'"); 32 if (PEAR::isError($res)) { 33 die($res->getMessage()); 34 } else { 35 echo "操做成功!</br>"; 36 } 37 38 ?>
以上資料均來源網絡,網絡
PHP PEAR DB類安裝與使用實例詳解:http://www.alixixi.com/program/a/2011101775410.shtml函數
PEAR:建立中間的數據庫應用層1:http://www.alixixi.com/program/a/2008020831340.shtml測試
PEAR:建立中間的數據庫應用層2:http://www.alixixi.com/program/a/2008020831341.shtml