安装扩展这部分直接看我的另外一篇文章,地址是:
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即可。
浪费了一天半的时间研究这个东西真不划算,大部分时间卡在了编码问题,还以为是不支持,还好帮朋友解决了问题。
原理:使用curl_init()创建多个请求实例,再使用curl_multi_init()批量执行创建的多个请求实例。文件1:curl.php<?php $threads=500;//并发请求次数 $url='http://blog.cn/index.php?';...
php arrayaccess 官方的说法是让你能以数组的形式访问对象,对于这种php内置接口一直不太明白有什么用,坚持多看文章,终于理解,特来分享,思路不同,更易于理解。(1).创建一个学生类,并且实现arrayaccess 接口。<?php class studen...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
在编写多进程的实例中我在每个进程中使用如下代码://调用等待信号的处理器 while (true) { pcntl_signal_dispatch(); }开启5个进程,cpu直接100%修正之后的代码://调用等待信号的处理器 while&...
当我想在一个进程中监听kill 和 kill -9命令报了这个错误。//监听kill pcntl_signal(SIGTERM, function () { posix_kill(0, SIGTERM); });...
自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": { "easy...