安装扩展这部分直接看我的另外一篇文章,地址是:
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即可。
浪费了一天半的时间研究这个东西真不划算,大部分时间卡在了编码问题,还以为是不支持,还好帮朋友解决了问题。
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...
(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...
posix_ttyname - 获取当前终端设备名称。<?php var_dump( posix_ttyname(STDOUT) );我们启动一个终端,执行上面的代码输出:/dev/tty1我们再启动一个终端,执行上面的代码输...
断点下载的原理:http请求头添加Range参数告诉文件服务器端需要的字节范围例如1个文本文件的字节为1000,第一次请求Range: bytes=0-500第二次请求Range: bytes=501-1000通过每次的请求将返回的流追加写入到文件。注意的项目:断点下载服务器端的每次只返回字节传输的...
概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...
当我们使用php爬虫采集网站时经常会遇到内容使用ajax异步加载。一般采取的方案是PHP模拟再请求api接口获取数据,但是有时候前端js加密非常麻烦,我们需要将js的加密方法转换为php方法方便curl请求。当然通过了解我们可以通过3种方案解决。第一种:使用phpv8js扩展执行js代码。(pecl...