php5.3以后无法使用php自带的mssql函数链接mssql。
需要安装微软自带的php_sqlsrv,安装好后一直链接失败。
一、配置ODBC+系统DSN数据源
之后找到【ODBC数据源管理器】(【开始】→【控制面板】→【管理工具】→【数据源(ODBC)】),转到【系统DSN】中,点击【添加】
选择【SQL Server】 —- 【完成】
设置数据源名称【test】(这是你之后用PHP的odbc函数来连接时使用的DSN名称),点击【服务器】下拉框选择服务器(我是手动填写的localhost)
选择认证方式—【下一步】
勾选【更改默认的数据为】→点击下拉框,选择已经建好的数据库—【下一步】之后步骤保持默认设置即可。
点击【测试数据源】,如果返回“测试成功”。就可以了。
一、建立连接
1、odbc
首先,在php程序所在的服务器设置odbc。这里32位和64位操作系统有区别。32位的从控制面板中管理工具中的数据源(odbc)直接建立就可以了,64位的要运行C:\Windows\SysWOW64\odbcad32.exe
从这里面设置。注意:上面只的是数据库服务器为32为的,数据源设置服务器为32位和64位两种的情况。只要两个服务器建立的数据源位数一致就好。
下面是odbc建立连接代码。
$con = odbc_connect("odbc名称","用户名","密码");
2、连接mssql2000
$con = mssql_connect("数据库地址","用户名","密码");
3、连接mssql2008
$connectionInfo = array("UID"=>用户名,"PWD"=>密码,"Database"=>"数据库名称");
$con = sqlsrv_connect( 数据库地址,$connectionInfo);
二、输入查询代码
这个都一样,可以直接写入,也可以从mssql中验证好后复制过来。简单点说就是把一个sql语句赋值给一个变量。
类似下面代码
$query = "SELECT top 12 * 数据库名称 order by id desc";
三、建立查询并取出数据
1、odbc
$result = odbc_do($con,$query);
while(odbc_fetch_row($result))
{
$变量名称 = odbc_result($result, "字段名称");
}
2、连接mssql2000
$result = mssql_query($con, $query);
while($row =mssql_fetch_array($result))
{
$变量名称 = $row["字段名称"];
}
3、连接mssql2008
$result = sqlsrv_query($con, $query);
while($row = sqlsrv_fetch_array($result))
{
$变量名称 = $row["字段名称"];
}
在php5.3及以后的版本中不附带sqlsrv库了。所以要从微软这里下载。
二、测试页面
Connect DB Test
//
// 数据库操作函数
//
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 "";
print "".odbc_field_name($rs, 1)."".odbc_field_name($rs, 2)."".odbc_field_name($rs, 3)."";
while(odbc_fetch_row($rs))
{
print "";
print "".odbc_result($rs, "id")."";
print "".odbc_result($rs, "bID")."";
print "".odbc_result($rs, "bName")."";
print "";
}
print "";
}
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 "
connecting db....";
$conn = odbc_connect ("test" , "sa", "password", SQL_CUR_USE_ODBC ) or die("fail to connect db");
/**
* 建表并显示结果
*/
print createTable($conn)."
";
print "Table is :
";
$tableRs = odbc_tables($conn, null, null, "book", "TABLE");
while(odbc_fetch_row($tableRs))
{
print odbc_result($tableRs, "TABLE_NAME")."
";
}
/**
* 插入测试数据
*/
insertTestData($conn);
print "
插入的数据:
";
showAll($conn, "book");
/**
* 删除数据
*/
deleteAll($conn, "book");
print "删除所有数据之后:
";
showAll($conn, "book");
/**
* 关闭数据连接
*/
odbc_close ( $conn );
?>
关闭连接
这个没有什么区别,分别是odbc_close();和mssql_close()和sqlsrv_close();
好了上面的命令就是我们给各位整理的了哦,希望文章能够帮助到各位。
php5.6使用odbc链接mssql_php5.6使用ODBC链接mssql(包括各版本)例子
http://m.bbyears.com/shujuku/94510.html
推荐访问: