PHP与mssql

PDO_ODBC数据源,各个版本都支持,如下图
708d433cd5ba21e791e2df2a725e889b13445.png
//连接数据库
$conn = new PDO('odbc:Driver={SQL Server};Server=数据库ip;Database=数据库名;',数据库账号,数据库密码);
//查询
$rs=$conn->query(" ... ");
$row=$rs->fetch();
//执行sql
$conn->exec(" ... ");

因为mssql编码不一样所以输出和输入需要转码
function mssql_($str,$bm1,$bm2){
	$mssql_=iconv($bm1,$bm2,$str);
	return $mssql_;
	//示例:utf-8转gb2312 -> mssql_($content,'utf-8','GB2312//IGNORE')
}



下面是读取柯林程序文章栏目的完整示例
<?php
//字符串截取,正则方式
function api_cutstr($str,$str_a,$str_b){
$cutstr="";
$pattern="/".$str_a."([\w\W]*?)".$str_b."/i";
$content=preg_match_all($pattern, $str, $matches);
if ($content!=0){$cutstr=$matches[1][0];}
return $cutstr;
}
function mssql_($str,$bm1,$bm2){
	$mssql_=iconv($bm1,$bm2,$str);
	return $mssql_;
	//示例mssql_($content,'utf-8','GB2312//IGNORE')
}
$mssql_str=file_get_contents($_SERVER['DOCUMENT_ROOT'].'/web.config');
$mssql_ip=api_cutstr($mssql_str,'KL_SQL_SERVERIP[\w\W]*?value=\"','\"');
$mssql_name=api_cutstr($mssql_str,'KL_SQL_UserName[\w\W]*?value=\"','\"');
$mssql_pass=api_cutstr($mssql_str,'KL_SQL_PassWord[\w\W]*?value=\"','\"');
$mssql_dbname=api_cutstr($mssql_str,'KL_DatabaseName[\w\W]*?value=\"','\"');
$conn = new PDO('odbc:Driver={SQL Server};Server='.$mssql_ip.';Database='.$mssql_dbname.';',$mssql_name,$mssql_pass); 
$page=isset($_GET['page'])?$_GET['page']:1;
$pagesize=10;//每页数量
$offset=($page-1)*$pagesize;
$rs_=$conn->query("select top ".$pagesize." id,userid,book_title from [wap_book] where id not in (select top ".$offset." id from [wap_book] where userid=1000) and userid=1000");
foreach($rs_->fetchAll() as $i => $rs){
	echo $rs['id'];
	echo mssql_($rs['book_title'],'GB2312//IGNORE','utf-8');
	echo '<hr>';
}
//查询总量
$rs_=$conn->query("select count(*) from [wap_book] where userid=1000");
$rs=$rs_->fetch();
$count=$rs[0];
$pagecount=ceil($count/$pagesize);//总页数
if ($pagecount>1){
	if ($page>1){
		echo "<a href=\"?page=1\">首页</a> \r\n";
		echo "<a href=\"?page=".($page-1)."\">上一页</a> \r\n";
	}
	if ($page<$pagecount){
		echo "<a href=\"?page=".($page+1)."\">下一页</a> \r\n";
		echo "<a href=\"?page=".$pagecount."\">尾页</a>\r\n";
	}
}

子非鱼,焉知鱼之乐!己所不欲,勿施于人!-MI 4s Black-
回复列表(2|隐藏机器人聊天)
添加新回复
回复需要登录