PHP使用ODBC连接SQL Server数据库和读写代码封装函数
db_sqlserver.php 稍为改下连接参数就可以拿去用了 ^_^
<?php
/**
* db_sqlserver.php
* Author: RoadToTheExpert
*/
/**
* db_con
*
* 创建SqlServer连接。
* 使用ODBC连接方式,需要到微软官网下载sqlserver for php相关驱动并重启。
* 注意驱动版本和x86,64位类型,在php.ini 开启 odbc 扩展。
* sqlserver与php在同一台机器同一个系统下容易连接成功。Linux没作测试。
*
* 执行此函数可以检测驱动是否安装成功。
* 使用时,相关参数需要更改为你实际使用的数据库对应的参数。
*/
function db_con()
{
$server = '192.168.0.1';
$username = 'sa'; //数据库用户名
$password = 'xxx'; //数据库密码
$database = 'db_xxx'; //数据库
$con_url = "Driver={SQL Server};Server=$server;Database=$database";
//define ...
$con = odbc_connect($con_url, $username, $password, SQL_CUR_USE_ODBC);
if ($con)
return $con;
return null;
}
/**
* db_query
* 执行select语句,返回二维数组(不含字段),参考test.php。
*/
function db_query($sql, $fieldcount)
{
$con = db_con();
if (is_null($con))
return null;
$rs = odbc_exec($con, $sql);
if( $rs === false) {
//echo 'sql error : ' . $sql;
//exit;
}
$table = [];
if( $rs === false || odbc_num_rows($rs) == 0 ) {
return $table;
}
while (odbc_fetch_row($rs)) {
$row = [];
$n = 0;
while( $n < $fieldcount ) {
$row[] = odbc_result($rs, ++$n);
}
$table[] = $row;
}
if( count($table) > 0 ) {
odbc_free_result($rs);
}
odbc_close($con);
return $table;
}
/**
* odbc_exec
* 执行insert,update或delete语句。
* 如果执行不成功,调整一下数据库参数和odbc_connect参数。
*/
function db_exec($sql)
{
$con = db_con();
if (is_null($con))
return null;
$dat = odbc_exec($con, $sql);
odbc_close($con);
return $dat;
}
test.php
<?php
require_once 'db_sqlserver.php';
function test() {
$sql = 'select name, account, age from user';
$rs = db_query($sql, 3);
foreach($rs as $r) {
foreach($r as $c ) {
echo $c."\t";
}
echo PHP_EOL;
}
$sql = "insert into user(name, account, age) values('myname', 'my_account', 18)";
$rs = db_exec($sql, 3);
var_dump($rs);
}
test();