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