首页 > 数据库 >使用pdo 连接sqlsrv 报错 ssl错误。

使用pdo 连接sqlsrv 报错 ssl错误。

时间:2024-09-13 21:03:22浏览次数:7  
标签:serverName odbc sqlsrv echo pdo 报错 conn ylh connect

 

报错:

SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:0A0C0103:SSL routines::internal error]
或者:

SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:0A000102:SSL routines::unsupported protocol
ubuntu20.04 版本中可以通过 修改 /etc/ssl/openssl

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=1
ubuntu 22.04 配置文件有一些差异

经测试只需要修改配置文件的大概最后一行

[system_default_sect]

CipherString = DEFAULT:@SECLEVEL=2

CipherString = DEFAULT:@SECLEVEL=0

或者

CipherString = ALL:@SECLEVEL=0

然后重启php8.1-fpm 即可
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/yhb598712254/article/details/129198029

 

<?php

require_once __DIR__ . '/../api/v1/vendor/autoload.php';
require_once __DIR__ . '/../api/src/autoload.php';

$data['host'] = "192.168.0.167";
$data['port'] = 1433;
$data['dbname'] = "ylh_diaodu";
$data['username'] = "zhzs";
$data['password'] = "zhzs@962001";

// $data['host'] = "dev.valueapex.com";
// $data['port'] = 11433;
// $data['dbname'] = "master";
// $data['username'] = "SA";
// $data['password'] = "Matrixva11+";

try {
    $DB = new PDO(
        'sqlsrv:Server=' . $data['host'] . ',' . $data['port'] .
            ';Database=' . $data['dbname'] . ';Encrypt=no;TrustServerCertificate=no;',
        $data['username'],
        $data['password'],
        [
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_EMULATE_PREPARES => true
        ]
    );

    $query = $DB->prepare("
        select @@VERSION
    ");

    $query->execute();
    $res = $query->fetch();
    var_dump($res);
} catch (PDOException $e) {
    echo "Cannot connect to DB for `" . $data['username'] . "`: \n\r";
    echo $e->getCode() . ' ' . $e->getMessage();
    die();
}




// $serverName = $data['host']; //数据库服务器地址
// $uid =$data['username'];     //数据库用户名
// $pwd = $data['password']; //数据库密码
// $connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"ylh_diaodu","Encrypt"=>false);

// $conn = sqlsrv_connect($serverName, $connectionInfo);
// if( $conn == false)
// {
//     echo "连接失败!";
//     var_dump(sqlsrv_errors());
//     exit;
// }else{
//     echo "链接成功";
// }

// //3

// $con = odbc_connect($serverName,$uid,$pwd);
// $query = "SELECT * FROM ylh_diaodu.ems_ylh_t1";
// $result = odbc_do($con,$query);
// while(odbc_fetch_row($result))
// {
//     $list = odbc_result($result, "id"); print_r($list);echo '<br/>';
// }


// //4
// $conn =mssql_connect($serverName,$uid,$pwd) or die ("connect failed");
// mssql_select_db('ylh_diaodu',$conn);


// // $database = new Medoo([
// //     'type' => 'mssql',
// //     'driver'=>'sqlsrv',
// //     'host' => '192.168.0.8',
// //     'database' => 'demo',
// //     'username' => 'sa',
// //     'password' => 'demo',
// //     'encrypt'=>0,// 这个是重点哦
// //     'port'=>1433
// // ]);


// //5
// $conn = new Com("ADODB.Connection"); //实例化一个Connection对象
// $connstr = "provider=sqloledb;datasource=$serverName;uid=$uid;pwd=$pws;database=ylh_diaodu;";
// $conn->Open($connstr);
// $rs = new Com("ADODB.Recordset"); //实例化一个Recordcount对象

// $rs->Open('select * from CKXS2 ', $conn, 1, 1);
// $count = $rs->RecordCount;
// echo "共有{$count}条纪录<br />";

// use PDO;

// // use Medoo\Raw;

// // $database=new Raw([
// //     'type' => 'mssql',
// //     'database' => 'ylh_diaodu',
// //     'host' => 'localhost',
// //     'username' => 'sa',
// //     'password' => 'Matrixva11+',
// // ]);

// // $result = $database->query("SELECT 1 AS test");
// // print_r($result);
// // die;
// // print_r($resultres);die;



// $dsn = 'Driver={ODBC Driver 18 for SQL Server};Server=192.168.0.167;Database=ylh_diaodu;TrustServerCertificate=yes';
// $user = 'zhzs';
// $password = 'zhzs@962001';

// // 尝试连接到ODBC数据源
// $conn = odbc_connect($dsn, $user, $password);

// if (!$conn) {
//     exit("Connection Failed: " . odbc_errormsg());
// }

// echo "Connection successful!";

// // 在这里执行SQL查询等操作

// // 关闭连接
// odbc_close($conn);


// die;
// $serverName = "192.168.0.167\\sqlexpress"; // 或者 IP 地址, 端口等
// $connectionInfo = array("Database" => "ylh_diaodu", "UID" => "zhzs", "PWD" => "zhzs@962001");

// $conn = sqlsrv_connect($serverName, $connectionInfo);

// if ($conn) {
//     echo "连接成功。";
// } else {
//     echo "连接失败。";
//     die(print_r(sqlsrv_errors(), true));
// }

 

标签:serverName,odbc,sqlsrv,echo,pdo,报错,conn,ylh,connect
From: https://www.cnblogs.com/xiaoyantongxue/p/18412867

相关文章

  • 2024Mysql And Redis基础与进阶操作系列(7)作者——LJS[含MySQL 聚合、数学、字符创、日
    目录MySQL函数1.聚合函数 格式补充 示例将所有员工的名字合并成一行指定分隔符合并指定排序方式和分隔符2.数学函数(即用即查,重在融会贯通与运用)3.字符串函数(即用即查,重在融会贯通与运用)4.日期函数(即用即查,重在融会贯通与运用)5.控制流函数(即用即查,重在融会贯通与运用)if逻辑判......
  • 2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解
    目录1.数据库与数据库管理系统1.1数据库的相关概念1.2数据库与数据库管理系统的关系 1.3 常见的数据库简介Oracle1. 核心功能2. 架构和组件3. 数据存储和管理4. 高可用性和性能优化5. 安全性6. 版本和产品7. 工具和接口 SQLServer1. 核心功能2. 架构和组件3. 数据......
  • 仁科环境监控平台 温湿度采集 报错
    應用程式:Monitor.exeFramework版本:v4.0.30319描述:處理序已終止,因為有未處理的例外狀況。例外狀況資訊:System.AccessViolationException於Gecko.SpiderMonkey.JS_ExecuteScript_Win32(IntPtr,IntPtrByRef,Gecko.MutableHandleValueByRef)於Gecko.SpiderMonkey.J......
  • Java常见报错
    NoSuchElementException:一般都是数组或者集合的索引越界ConCurrentCheck(并发修改异常):因为集合中有自己的修改次数记录的变量,还有另一个记录地变量,一般这2个变量不一致,则会报错!mapkeyisrequired怎么解决:说明:MyBatis查询一些记录,数据涉及到两个表里的数据,需要连表查......
  • Java成神之路-踩坑篇: SpringBoot2.7.0版本整合Swagger3.0.0。解决:项目启动报错与swa
    话不多说先上报错信息Causedby:java.lang.NullPointerException:null atspringfox.documentation.spring.web.WebMvcPatternsRequestConditionWrapper.getPatterns(WebMvcPatternsRequestConditionWrapper.java:56)~[springfox-spring-webmvc-3.0.0.jar:3.0.0] atspri......
  • springcloud项目中学习&&各种报错
    springcloud项目中maven依赖报错Non-resolvableimportPOM直接删除pom依赖中的《type》import即可——然后你会惊奇的发现springcloudalibaba的相关组件不添加版本会无法使用;但,在这时候你重新把这个《type》加入之后,哎,一切都好了,不会报错也正常使用(滑稽)Nacos发行版本安......
  • 3par之CRC报错
    故障现象某客户反映,通过IMC管理软件查看到3par8200存储的两个端口:0:0:1和0:0:2,有大量的CRC相关告警,为了保障存储链路稳定,请求处理此故障。故障分析8200cli%showportlesbsingle0:0:1#显示HP3PAR存储系统中端口状态和统计信息IDALPA----Port_WWN----Li......
  • Redis常见报错及解决方法总结
    Redis常见报错及解决方法总结Redis作为高效的内存数据库,在实际使用过程中不可避免会遇到一些问题和报错。为了帮助大家更好地应对这些问题,我将常见的Redis报错及其解决方法进行总结,并提供具体的操作步骤。1.ConnectionRefused错误描述:客户端连接Redis时,出现Connection......
  • PbootCMS网站转移后无法打开报错提示“No input file specifed”
    当PBootCMS网站在转移服务器后出现“Noinputfilespecified”的错误提示时,这通常是由于某些配置或文件问题导致的。以下是可能导致此错误的一些原因及解决方法:检查.user.ini文件:检查根目录是否含有.user.ini文件,如果有,请尝试删除该文件,然后重新访问站点。重启Web服务器......
  • PbootCMS附件上传失败报错UNKNOW: Code: 8192; Desc: stripos()
    在PBootCMS中遇到附件上传失败的报错 UNKNOW:Code:8192;Desc:stripos():Non-stringneedleswillbeinterpretedasstringsinthefuture.Useanexplicitchr()calltopreservethecurrentbehavior,这通常是因为PHP版本升级后某些函数的行为发生了变化。具体来说,st......