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
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.
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