文章詳情頁
PHP調(diào)用三種數(shù)據(jù)庫的方法(2)
瀏覽:3日期:2024-02-28 16:22:13
開放數(shù)據(jù)庫連接(ODBC)已成為一種與數(shù)據(jù)庫進(jìn)行通信的工業(yè)標(biāo)準(zhǔn)。PHP也提供了標(biāo)準(zhǔn)的接口,使得PHP能調(diào)用Access,SQL SERVER等數(shù)據(jù)庫。其相關(guān)函數(shù)是:(1)integer odbc_connect(string dsn, string user, string password)連接到一個(gè)ODBC數(shù)據(jù)庫源名字上。(2)integer odbc_exec(integer connection, string query)或 odbc_do(integer connection, string query)在一個(gè)連接上執(zhí)行查詢。(3)boolean odbc_fetch_row(integer result, integer row)從一個(gè)結(jié)果集中獲取一行數(shù)據(jù)。Row參數(shù)是可選的,若為空缺,則返回下一個(gè)有效行。在結(jié)果集中不再剩余行時(shí)返回false。(4)boolean odbc_close(integer connection)關(guān)閉一個(gè)數(shù)據(jù)庫的連接。若在該連接上有打開的事務(wù),則返回一個(gè)錯(cuò)誤,而且連接不會(huì)被關(guān)閉。最后,還是看個(gè)分頁的例子:<?//設(shè)定每頁顯示條數(shù)$show_num = 10;$spages = $pages;//避免$pages后期被改變//定義連接$dsn = "localhost";$user = "sa";$password = "";//計(jì)算總記錄數(shù)$rs_num = "select count(*) as id from bbs where zu='0' and lei='".$lei."'";$conn_id = odbc_connect($dsn,$user,$password);$rnum = odbc_exec($conn_id,$rs_num);while(odbc_fetch_row($rnum)){$total_rs = odbc_result($rnum,"id");//將總記錄數(shù)放入$total_rs變量}//計(jì)算與頁有關(guān)的條數(shù)$nnn = $total_rs / $show_num;//計(jì)算總頁數(shù)$hnnn = intval($nnn);//將總頁數(shù)取整$cnnnn = $nnn - $hnnn;//計(jì)算所需總頁數(shù)switch ($cnnn){case "0":$hnnn++;$nnn = $hnnn;//總頁數(shù)break;default :$nnn = $hnnn;//總頁數(shù)break;};if ($nnn == 0)$nnn++;//計(jì)算頁面改變所需的條件$fore = $pages;$next = $pages;$fore -= 1;$next += 1;if ($fore > 0) {echo "<a>首頁</a>";echo "<a>前頁</a>";};if ($pages < $nnn) {echo "<a>后頁</a>";echo "<a>尾頁</a>";};echo "共".$nnn."頁";$query_string = "SELECT * FROM table where condition order by you wanted order";$cur = odbc_exec($conn_id,$query_string);//取到循環(huán)的頂部$cnum = ($pages-1) * $show_num;//計(jì)算當(dāng)前的記錄游標(biāo)的位置//空循環(huán)到顯示記錄游標(biāo)處if ($cnum != 0){for ($i=0;$i<=$cnum;odbc_fetch_row($cur)){$i++;};};$i=1;//顯示記錄while(odbc_fetch_row($cur)){echo ;if ($i == $show_num){//在不滿頁數(shù)時(shí)跳出程序break; };$i++;}; //關(guān)閉連接odbc_close($conn_id);?>
標(biāo)簽:
PHP
排行榜
