有两个方法:odbc 或者mssql 连接
配置的时候,最好先确认php网页调试时,能输出错误提示。
打开php.ini ,确认display_errors=On 。这样,通过网页打开测试页面时,有错误提示,心里有底,知道该怎么调整代码。
odbc 最大的好处就是不需要改什么文件,拷贝其他文件之类的。 需要在系统dsn里配置一个sql的odbc连接。
首先打开odbc连接窗口进行设置。
点击系统dsn,添加-sql server,通过创建到sql server的新数据源窗口设置连接的配置。这里需要注意的是,
第一步设置的名称,后面代码需要用到.
配置完成后,用测试页面进行测试。新建一个php页面,代码如下:
<?php
$ms_host = "phptosql05"; //这里是ODBC的连接名称
$ms_user = "sa"; //用户名
$ms_pass = "123456"; //密码
$ms_connect =odbc_connect($ms_host, $ms_user, $ms_pass) or die("Couldn't connect to SQL Server on MSSQL");
if($ms_connect)
{
echo '恭喜,连接数据库成功!';
};
?>
如果看到恭喜,连接数据库成功!,则已经连接上sql数据库了。
注:php默认打开odbc的。你可以通过phpinfo页面查看是否开启了这个功能。
<?php
phpinfo();
?>
mssql 需要做一些设置
首先。打开php.ini ,保证mssql.secure_connection=Off . 把extension=php_mssql.dll前的;去掉。
然后,打开下载ntwdblib.zip,把ntwdblib.dll文件php\php5文件目录(即php.ini的目录里)
接着,到php\php5\ext文件目录里,把php_mssql.dll和ntwdblib.dll拷贝到windows/system32里。
最后,重启apache。
注:你可以通过phpinfo页面查看是否开启了mssql这个功能。
<?php
phpinfo();
?>
配置完成后,用测试页面进行测试。新建一个php页面,代码如下:
<?php
$conn=mssql_connect("192.168.0.101","sa","123456") or die('Something went wrong while connecting to MSSQL');
//测试连接
if($conn)
{
echo '连接数据库成功!';
}
?>
如果看到连接数据库成功!,则已经连接上sql数据库了。
对于 2005 或者 2008 ,经过测试,可以使用sqlsrv来连接。要安装SQLSRV20和Microsoft SQL Server 2008 Native Client(http://www.downcc.com/soft/8474.html)
sqlsrv的安装,百度有很多。
代码:
<?php
$serverName = "172.18.200.21";
$connectionInfo = array("UID"=>"sa","PWD"=>"xxzx@2676627","Database"=>"ReportServer");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$sql = "select * from Catalog" ;
$stmt = sqlsrv_query ( $conn , $sql );
if( $stmt === false ) {
die( print_r ( sqlsrv_errors (), true ) );
}
while( $row = sqlsrv_fetch_array ( $stmt , SQLSRV_FETCH_ASSOC ) ) {
echo $row [ 'ItemID' ]. ", " . $row [ 'Type' ]. "<br />" ;
}
sqlsrv_free_stmt ( $stmt );
sqlsrv_close( $conn);
?>
----------从mssql 2008 取出的数据中文乱码问题。
乱码原因
只要你使用的是php自带的那个mssql,那读出来的数据编码格式一定是gbk,这是因为mssql自身只有gbk的编码,且不能定义
解决方案
1使用mssql
可以在输出的时候,对输出的数据强制转换,只需要转换汉字,数字不需要转
while($row = mssql_fetch_row($result)){
echo iconv('GB2312','UTF-8',$row[0]);
}
2使用最新的微软扩展sqlsrv driver for php
下载这个dll,放到php的ext文件夹中
修改php.ini打开这个扩展
在定义连接时,可以指定编码为utf-8