当前位置:首页 > PHP > 正文内容

php7连接sqlserver2000

高老师5年前 (2021-07-18)PHP1789

安装扩展这部分直接看我的另外一篇文章,地址是:

https://blog.20230611.cn/?id=353

php连接sqlserver方式有4种:

pdo
sqlsrv_connect
odbc
com

前面两种方式会依赖微软给的驱动版本,也依赖于固定版本的sqlserver,例如sqlserver2000只能在php5.3版本使用。而com和odbc不用限制。

例如我的php7.3连接sqlserver2000的代码:

// 连接SQL
$sql = iconv('UTF-8', 'GBK', $sql);;
$dsn = "Driver={SQL Server};Server={$config['host']};Database={$config['name']};trusted_connection=Yes";
$conn = odbc_connect($dsn, $config['user'], $config['pass'], SQL_CUR_USE_ODBC);
if (!$conn)
{
    throw new Exception('连接SQL服务器失败');
}

// 执行SQL
$result = odbc_exec($conn, $sql);
if (!$result)
{
    throw new Exception('SQL执行失败:' . odbc_error());
}

// 提取结果
$responseData = [];
while (true)
{
    $row = (odbc_fetch_array($result));
    if (!$row)
    {
        break;
    }
    $keys = array_keys($row);
    foreach ($keys as $key)
    {
        $row[$key] = iconv('GBK', 'UTF-8', $row[$key]);
    }
    $responseData[] = $row;
}
odbc_close($conn);

return $responseData;

当然也可以使用com连接,具体代码自己搜索,开启com_dotnet.dll即可

$dbConn=new COM ("ADODB.Connection")

com连接的代码和asp是完全一致的,如果你写过asp,看一下绝对完全一致。

要处理编码问题,传递给sqlserver的sql自己转gbk编码,sqlserver返回结果你再转换回utf8即可。

浪费了一天半的时间研究这个东西真不划算,大部分时间卡在了编码问题,还以为是不支持,还好帮朋友解决了问题。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/208.html

分享给朋友:

“php7连接sqlserver2000” 的相关文章

PHP浮点数乘以整数还是浮点型

PHP浮点数乘以整数还是浮点型

<?PHP     $a=0.5*100;     if(is_int($a)){   echo'int'; } else{ echo'not int';   }    ...

 php抽象类和接口作用

php抽象类和接口作用

【一】.抽象类假设如下场景:团队准备开发某网站,表建好了,页面设计好了.A组负责开发底层数据库操作类(DB),B组负责调用DB类.但是此时A组发生了争执,MySQL? Oracle? DB2? sqlite?到底使用什么数据库?B组.... 进入漫长的等待.解决方法:A组和B组 先定1个数据库类的模...

php创建webservice,php搭建webservice,php编写webservice

php创建webservice,php搭建webservice,php编写webservice

第一步:服务端文件<?php $wsdlfile='webservice.wsdl'; ini_set('soap.wsdl_cache_enabled','0');    //关闭WSDL缓存 //001...

【一】PHP多进程学习-简单创建父子进程.理解父子进程运行流程

【一】PHP多进程学习-简单创建父子进程.理解父子进程运行流程

(1).学习的目标:学会创建父子进程,并且能够区分当前进程是父还是子;了解父进程执行过程,子进程执行过程;能够用多进程执行任务(2).相关函数学习:    (2.1)pcntl_fork()执行时:       &nbs...

【二】PHP多进程学习-进程信号管理

【二】PHP多进程学习-进程信号管理

(1).学习目标:    了解常见信号类型(百度PHP支持的信号类型),(2).相关函数学习:    (2.1).pcntl_signal函数用于设置一个信号管理器接收进程信号,参数1:信号类型,参数2:回调函数,用于在接收到参数1类型的信...

php new class

php new class

<?php $member = new class {     public function getInfo()     {    ...