PHP调用三种数据库的方法(2)

作者:未知 来源:未知 添加时间:2006年7月2日 字体:

开放数据库连接(ODBC)已成为一种与数据库进行通信的工业标准。PHP也提供了标准的接口,使得PHP能调用Access,SQL Server等数据库。其相关函数是: 



(1)integer odbc_connect(string dsn, string user, string password) 



连接到一个ODBC数据库源名字上。 



(2)integer odbc_exec(integer connection, string query)或 odbc_do(integer connection, string query) 



在一个连接上执行查询。 



(3)boolean odbc_fetch_row(integer result, integer row) 



从一个结果集中获取一行数据。Row参数是可选的,若为空缺,则返回下一个有效行。在结果集中不再剩余行时返回false。 



(4)boolean odbc_close(integer connection) 



关闭一个数据库的连接。若在该连接上有打开的事务,则返回一个错误,而且连接不会被关闭。 



最后,还是看个分页的例子: 



<? 



//设定每页显示条数 



$show_num = 10; 



$spages = $pages;//避免$pages后期被改变 



//定义连接 



$dsn = "localhost"; 



$user = "sa"; 



$password = ""; 



//计算总记录数 



$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");//将总记录数放入$total_rs变量 







//计算与页有关的条数 



$nnn = $total_rs / $show_num;//计算总页数 



$hnnn = intval($nnn);//将总页数取整 



$cnnnn = $nnn - $hnnn; 



//计算所需总页数 



switch ($cnnn){ 



case "0": 



$hnnn++; 



$nnn = $hnnn;//总页数 



break; 



default : 



$nnn = $hnnn;//总页数 



break; 



}; 



if ($nnn == 0)$nnn++; 



//计算页面改变所需的条件 



$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); 



//取到循环的顶部 



$cnum = ($pages-1) * $show_num;//计算当前的记录游标的位置 



//空循环到显示记录游标处 



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){//在不满页数时跳出程序 



break; 



}; 



$i++; 



}; 



//关闭连接 



odbc_close($conn_id); 



?>

ppdesk