php5.3以后无法使用php自带的mssql函数链接mssql。
需要安装微软自带的php_sqlsrv,安装好后一直链接失败。
一、配置ODBC+系统DSN数据源
之后找到【ODBC数据源管理器】(【开始】→【控制面板】→【管理工具】→【数据源(ODBC)】),转到【系统DSN】中,点击【添加】
选择【SQL Server】 —- 【完成】
设置数据源名称【test】(这是你之后用PHP的odbc函数来连接时使用的DSN名称),点击【服务器】下拉框选择服务器(我是手动填写的localhost)
选择认证方式—【下一步】
勾选【更改默认的数据为】→点击下拉框,选择已经建好的数据库—【下一步】之后步骤保持默认设置即可。
点击【测试数据源】,如果返回“测试成功”。就可以了。
二、测试页面
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Access DB Test</title> </head> <body> <h1 align="center">Connect DB Test</h1> <?php // // 数据库操作函数 // function deleteAll($conn, $table) { $sql = 'DELETE FROM '.$table.' WHERE 1=1'; odbc_exec($conn, $sql); } function showAll($conn, $table) { $sql = 'SELECT id, bID, bName FROM '.$table; $rs = odbc_do($conn, $sql); print '<table border="1">'; print '<tr><td>'.odbc_field_name($rs, 1).'</td><td>'.odbc_field_name($rs, 2).'</td><td>'.odbc_field_name($rs, 3).'</td></tr>'; while(odbc_fetch_row($rs)) { print '<tr>'; print '<td>'.odbc_result($rs, 'id').'</td>'; print '<td>'.odbc_result($rs, 'bID').'</td>'; print '<td>'.odbc_result($rs, 'bName').'</td>'; print '</tr>'; } print '</table>'; } function insertTestData($conn) { static $i = 0; for($j = 0; $j < 10; $j++) { $insertSql = 'INSERT INTO book (bID, bName) VALUES (\'ISBN 7-5325-2480-'.$i.'\',\'测试'.$i++.'\')'; odbc_exec($conn, $insertSql); } } function createTable($conn) { $tableRs = odbc_tables($conn, null, null, 'book', 'TABLE'); if(odbc_fetch_row($tableRs) ) { return 'table already exists.'; } $createSql = ('CREATE TABLE book'. '('. 'id INT IDENTITY(1, 1) PRIMARY KEY,'. 'bID VARCHAR(30) NOT NULL,'. 'bName NVARCHAR(30) NOT NULL,'. ')' ); odbc_do($conn, $createSql); return 'table created!'; } // // 测试流程 // print '<pre>connecting db....</pre>'; $conn = odbc_connect ("test" , "sa", "password", SQL_CUR_USE_ODBC ) or die('fail to connect db'); /** * 建表并显示结果 */ print createTable($conn).'<br>'; print "Table is :<br>"; $tableRs = odbc_tables($conn, null, null, 'book', 'TABLE'); while(odbc_fetch_row($tableRs)) { print odbc_result($tableRs, 'TABLE_NAME').'<br>'; } /** * 插入测试数据 */ insertTestData($conn); print '<hr>插入的数据: <br>'; showAll($conn, 'book'); /** * 删除数据 */ deleteAll($conn, 'book'); print '删除所有数据之后: <br>'; showAll($conn, 'book'); /** * 关闭数据连接 */ odbc_close ( $conn ); ?> </body> </html>