Rumah > Soal Jawab > teks badan
Pertama sekali, saya memang noob. (Berasa maaf) Kedua, saya cuba menyambungkan php ke pelayan mssql. Ketiga, saya telah memasang sqlsrv, pdo_sqlsrv dan msodbcsql.msi Tetapi masih mendapat mesej ralat semasa cuba menyambung
Versi php saya ialah 8.0.10, x64; pelayan mssql 2012.
Kod php saya untuk menguji sambungan:
<?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));} ?>
Kemudian saya mendapat ralat dan diarahkan untuk memasang msodbcsql.msi, saya memasangnya seperti yang diarahkan. Tetapi kemudian ia menunjukkan ralat baharu yang tidak dapat saya selesaikan.
Tatasusunan ( [0] => Tatasusunan ( [0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Kod] => -2146893019 2 => untuk Pelayan SQL] Pembekal SSL: Rantaian sijil dikeluarkan oleh pihak berkuasa yang tidak dipercayai [Message] => [Microsoft][ODBC Driver 18 untuk Pelayan SQL] Pembekal SSL: Rantaian sijil dikeluarkan oleh pihak berkuasa yang tidak dipercayai ) 1 => ; Array ([0] => 08001 [SQLSTATE] => 08001 1 => -2146893019 [Kod] => -2146893019 2 => [Microsoft][ODBC Driver 18 tidak boleh mewujudkan sambungan SQL Server [Mesej] => [Microsoft][ODBC Driver 18 untuk SQL Server]Pelanggan tidak dapat mewujudkan sambungan) )
Maklumat tambahan: Tiada masalah apabila saya menyambungkan dbeaver (pc berbeza) ke pelayan mssql (server yang sama).
Terima kasih terlebih dahulu
P粉5459565972023-10-31 10:06:43
Saya menggunakan pemacu ODBC 17 dan bukannya pemandu ODBC 18 dan masalah itu telah diselesaikan. Dalam kes saya, saya tidak memerlukan penyulitan jadi pemandu 17 adalah baik untuk saya.
P粉3279030452023-10-31 09:22:33
Sekiranya ada yang tertanya-tanya bagaimana untuk menentukan TrustServerCertificate sebagai 1, ini adalah cara saya melakukannya, saya menambah parameter sebagai elemen tatasusunan baharu seperti di bawah
<?php $serverName = "10.xxx.xx.148"; $connectionInfo = array( "Database"=>"zzzz", "UID"=>"ww", "PWD"=>"123cccc", "TrustServerCertificate"=>true ); $conn = sqlsrv_connect( $serverName, $connectionInfo); ?>