php5.6使用odbc链接mssql_php5.6使用ODBC链接mssql(包括各版本)例子

时间:2020-08-24  来源:Mssql  阅读:

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库了。所以要从微软这里下载。
二、测试页面




Access DB Test


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

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新