最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php5.6使用ODBC链接mssql(包括各版本)例子
时间:2022-06-24 18:44:33 编辑:袖梨 来源:一聚教程网
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:WindowsSysWOW64odbcad32.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 '
'.odbc_field_name($rs, 1).' | '.odbc_field_name($rs, 2).' | '.odbc_field_name($rs, 3).' |
'.odbc_result($rs, 'id').' | ';'.odbc_result($rs, 'bID').' | ';'.odbc_result($rs, 'bName').' | ';
}
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();
好了上面的命令就是我们给各位整理的了哦,希望文章能够帮助到各位。
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21