Maison > Questions et réponses > le corps du texte
Tout d’abord, je suis vraiment un noob. (Se sentir désolé) Deuxièmement, j'ai essayé de connecter php au serveur mssql. Troisièmement, j'ai installé sqlsrv, pdo_sqlsrv et msodbcsql.msi Mais je reçois toujours un message d'erreur lorsque j'essaie de me connecter
Ma version de PHP est 8.0.10, x64 ; serveur mssql 2012.
Mon code php pour tester la connexion :
<?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));} ?>
Ensuite, j'ai eu une erreur et j'ai été invité à installer msodbcsql.msi, je l'ai installé comme indiqué. Mais ensuite, de nouvelles erreurs s'affichent que je ne parviens pas à résoudre.
Array ( [0] => Array ( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Code] => -2146893019 2 => [Microsoft][Pilote ODBC 18 pour SQL Server] Fournisseur SSL : la chaîne de certificats a été émise par une autorité non fiable [Message] => [Microsoft][ODBC Driver 18 pour SQL Server] Fournisseur SSL : la chaîne de certificats a été émise par une autorité non fiable) 1 =>. ; Tableau ([0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Code] => -2146893019 2 => [Microsoft][Pilote ODBC 18 pour SQL Server] Le client ne peut pas établir de connexion [Message] => [Microsoft][Pilote ODBC 18 pour SQL Server]Le client ne parvient pas à établir la connexion) )
Information supplémentaire : Il n'y a aucun problème lorsque je connecte dbeaver (PC différent) au serveur mssql (même serveur).
Merci d'avance
P粉5459565972023-10-31 10:06:43
J'ai utilisé le pilote ODBC 17 au lieu du pilote ODBC 18 et le problème a été résolu. Dans mon cas, je n'ai pas besoin de cryptage, donc le pilote 17 me convient.
P粉3279030452023-10-31 09:22:33
Juste au cas où quelqu'un se demanderait comment définir TrustServerCertificate comme 1, voici comment je l'ai fait, j'ai ajouté les paramètres en tant que nouveaux éléments du tableau comme ci-dessous
<?php $serverName = "10.xxx.xx.148"; $connectionInfo = array( "Database"=>"zzzz", "UID"=>"ww", "PWD"=>"123cccc", "TrustServerCertificate"=>true ); $conn = sqlsrv_connect( $serverName, $connectionInfo); ?>