Heim > Fragen und Antworten > Hauptteil
Zuallererst bin ich wirklich ein Neuling. (Leid tun) Zweitens habe ich versucht, PHP mit dem MSSQL-Server zu verbinden. Drittens habe ich sqlsrv, pdo_sqlsrv und msodbcsql.msi installiert Beim Versuch, eine Verbindung herzustellen, wird jedoch immer noch eine Fehlermeldung angezeigt
Meine PHP-Version ist 8.0.10, x64; MSSQL-Server 2012.
Mein PHP-Code zum Testen der Verbindung:
<?php $serverName = "10.xxx.xx.148"; $connectionInfo = array( "Database"=>"zzzz", "UID"=>"ww","PWD"=>"123cccc"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true));} ?>
Dann erhielt ich eine Fehlermeldung und wurde angewiesen, msodbcsql.msi zu installieren. Ich habe es wie angewiesen installiert. Aber dann werden neue Fehler angezeigt, die ich nicht beheben kann.
Array ( [0] => Array ( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Code] => -2146893019 2 => [Microsoft][ODBC-Treiber 18 für SQL Server] SSL-Anbieter: Die Zertifikatskette wurde von einer nicht vertrauenswürdigen Behörde ausgestellt. [Nachricht] => [Microsoft][ODBC-Treiber 18 für SQL Server] SSL-Anbieter: Die Zertifikatskette wurde von einer nicht vertrauenswürdigen Behörde ausgestellt ; Array ([0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Code] => -2146893019 2 => [Microsoft][ODBC-Treiber 18 für SQL Server ]Client kann keine Verbindung herstellen [Nachricht] => [Microsoft][ODBC-Treiber 18 für SQL Server]Client kann keine Verbindung herstellen) )
Zusätzliche Informationen: Es gibt kein Problem, wenn ich dbeaver (anderer PC) mit dem MSSQL-Server (dem gleichen Server) verbinde.
Vielen Dank im Voraus
P粉5459565972023-10-31 10:06:43
我使用 ODBC 驱动程序 17 而不是 ODBC 驱动程序 18,问题已解决。就我而言,我不需要加密,因此驱动程序 17 对我来说没问题。
P粉3279030452023-10-31 09:22:33
以防万一有人想知道如何将 TrustServerCertificate 定义为 1,我就是这样做的,我将参数添加为新的数组元素,如下所示
<?php $serverName = "10.xxx.xx.148"; $connectionInfo = array( "Database"=>"zzzz", "UID"=>"ww", "PWD"=>"123cccc", "TrustServerCertificate"=>true ); $conn = sqlsrv_connect( $serverName, $connectionInfo); ?>