Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyelesaian kepada masalah bahawa sistem php tidak menyokong mssql

Penyelesaian kepada masalah bahawa sistem php tidak menyokong mssql

藏色散人
藏色散人asal
2021-09-11 10:16:341895semak imbas

Penyelesaian kepada masalah yang php tidak menyokong mssql: 1. Muat turun "SQLSRV20.EXE" 2. Ekstrak fail ke folder sambungan php 3. Ubah suai fail php.ini; dan mulakan semula apache Itu sahaja.

Penyelesaian kepada masalah bahawa sistem php tidak menyokong mssql

Persekitaran pengendalian artikel ini: sistem Windows 7, versi php 5.3, komputer DELL G3

Penyelesaian kepada masalah yang sistem php tidak menyokong Kaedah mssql, penyelesaian kepada masalah yang php5.3 tidak dapat menyambung ke pangkalan data mssql

Artikel ini menerangkan penyelesaian kepada masalah yang php5.3 tidak dapat menyambung ke pangkalan data mssql .

Analisis adalah seperti berikut:

Sejak php5.3, sistem tidak menyokong fungsi mssql_connect Pada masa lalu, saya juga mengatakan bahawa ia boleh dilaksanakan menggunakan antara muka com Saya akan memperkenalkan penyelesaian kepada masalah yang php5.3 tidak boleh Cara lain untuk menyambung ke pangkalan data mssql.

Di bawah sistem Windows, versi di atas PHP5.3 tidak lagi menyokong sambungan mssql.

http pertama ://msdn.microsoft.com/en-us/ sqlserver/ff657782.aspx Klik dapatkannya untuk memuat turun SQLSRV20.EXE.

Ekstrak fail ke folder sambungan php ext, buka php.ini dan tambah pada penghujung:

Kod adalah seperti berikut:

[PHP_PDO_SQLSRV] 
extension=php_pdo_sqlsrv_53_nts_vc6.dll 
[PHP_SQLSRV] 
extension=php_sqlsrv_53_nts_vc6.dll

Simpan dan mulakan semula apache , lampirkan contoh sambungan PHP mudah, kodnya adalah seperti berikut:

Kod adalah seperti berikut:

<?php 
$serverName = "(127.0.0.1)"; 
$connectionInfo = array( "UID"=>"root", 
"PWD"=>"root2010", 
"Database"=>"master"); 
 
$conn = sqlsrv_connect( $serverName, $connectionInfo); 
if( $conn ) 
{ 
echo "Connection established.n"; 
} 
else 
{ 
echo "Connection could not be established.n"; 
die( print_r( sqlsrv_errors(), true)); 
} 
?>

Saya menggunakan pakej pemasangan bersepadu wamp5.1 dan diuji pada Windows Server 2008 , ujian untuk php5.4 atau ke atas tidak berjaya

Jika anda menggunakan sambungan ini untuk menyambung ke pelayan sql 2005 atau ke atas (seperti pelayan sql 2008), anda juga perlu memasang. SQL Server Native Client pada mesin dahulu: http ://download.microsoft.com/download/0/E/6/0E67502A-22B4-4C47-92D3-0D223F117190/sqlncli.msi

Pelanjutan ini menambah siri fungsi bermula dengan sqlsrv_ hingga PHP , rujukan fungsi adalah seperti berikut:

Kod adalah seperti berikut:

sqlsrv_begin_transaction 
sqlsrv_cancel 
sqlsrv_client_info 
sqlsrv_close 
sqlsrv_commit 
sqlsrv_configure 
sqlsrv_connect 
sqlsrv_errors 
sqlsrv_execute 
sqlsrv_fetch 
sqlsrv_fetch_array 
sqlsrv_fetch_object 
sqlsrv_fetch_metadata 
sqlsrv_free_stmt 
sqlsrv_get_config 
sqlsrv_get_field 
sqlsrv_has_rows 
sqlsrv_next_result 
sqlsrv_num_fields 
sqlsrv_num_rows 
sqlsrv_prepare 
sqlsrv_query 
sqlsrv_rollback 
sqlsrv_rows_affected 
sqlsrv_send_stream_data 
sqlsrv_server_info

Arahan yang lebih terperinci boleh didapati dalam fail pengekstrakan sendiri hanya kini, terdapat SQLServerDriverForPHP.chm, anda boleh mencarinya dalam fail bantuan dan klik untuk membukanya nod Rujukan API.

Lihat kaedah sambungan odb yang lain, kodnya adalah seperti berikut:

Kodnya adalah seperti berikut:

$dbhost = &#39;&#39;; 
$dbuser = &#39;&#39;; //你的mssql用户名 
$dbpass = &#39;&#39;; //你的mssql密码 
$dbname = &#39;&#39;; //你的mssql库名 
$connect=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass"); 
$sql="select * from content"; 
$exec=odbc_exec($connect,$sql); 
while($row = (odbc_fetch_array($exec))) 
{ 
$row[&#39;id&#39;]   //?取字段值 
… 
}

Pembelajaran yang disyorkan: "Tutorial Video PHP

Pengenalan berkaitan:

1. The langkah-langkah untuk php5.3 untuk berjaya menyambung ke MSSQL melalui PDO diringkaskan secara ringkas seperti berikut:

1. Muat turun pemacu microsoft untuk php untuk pelayan sql (pada masa ini terdapat versi 2.0 dan 3.0, yang dibahagikan kepada ts dan nts. versi masing-masing. Anda boleh mengesahkan bahawa ia adalah ts melalui Thread Safety:enable dalam phpinfo(). folder php, ubah suai sambungan sambungan php.ini=php_pdo_sqlsrv_53_ts_vc6.dll

3 Muat turun Microsoft SQL Server 2008 R2 Native Client dan pasangkannya

Kod ujian:

<?php
  try {
     $hostname = "192.168.1.100"; 
     $dbname = "Northwind";
     $username = "sa"; 
     $pwd = "pwd100"; 
     $dsn="sqlsrv:Server=$hostname;database=$dbname";
     
    $conn = new PDO ($dsn,$username,$pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    echo "mssql database connnection sucessed!";
   } catch (PDOException $e) {
     echo "Failed to get DB handle: " . $e->getMessage() . "\n";
     exit;
   }
?>
2. Di bawah sistem Windows, versi PHP5.3 dan ke atas tidak lagi menyokong sambungan mssql, jadi jika anda perlu berkomunikasi dengan pelayan sql, anda perlu pergi ke http://msdn.microsoft.com/en-us/sqlserver / ff657782.aspx Muat Turun Pemacu Pelayan SQL untuk PHP yang disediakan oleh Microsoft. Ini ialah fail yang mengekstrak sendiri Selepas penyahmampatan, anda akan mendapat fail berikut:

php_sqlsrv_52_nts_vc6.dll
php_sqlsrv_52_ts_vc6.dll
php_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc6.dll
php_sqlsrv_53_ts_vc9.dll
php_sqlsrv_license.rtf
SQLServerDriverForPHP.chm
SQLServerDriverForPHP_Readme.htm
Antaranya, 52 dan 53 mewakili versi 5.2.X dan 5.3.X bagi PHP; linear dan selamat ts bermaksud keselamatan benang; vc6 bermaksud menggunakan Apache sebagai Pelayan Web, dan vc9 bermaksud menggunakan IIS sebagai Pelayan Web.

Mengikut konfigurasi anda, salin fail DLL yang sepadan ke folder ext direktori pemasangan php Seterusnya, buka php.ini dan tambah pernyataan berikut untuk membuka sambungan php_sqlsrv dan php_pdo_sqlsrv:

— ————————————————————

————————————————
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_ts_vc6.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_ts_vc6.dll

53 di sini bermaksud php5.3 Jika anda adalah versi 5.2, tukar kepada 52. Jika versi PHP anda selamat untuk thread, maka harus ada php5ts.dll dalam direktori pemasangan PHP anda, yang sama dengan kedua-duanya di sini, sepadan dengan pernyataan baris, jika ia adalah php5nts.dll, maka pernyataan di atas hendaklah:

——————————————————— ——-

——————————————————-
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_nts_vc6.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_nts_vc6.dll

Terdapat fail dll untuk setiap versi dalam pakej termampat, anda boleh menyemaknya dengan teliti.

Selepas menghidupkan sambungan, mulakan semula apache supaya anda boleh menyambung ke sqlserver, tetapi ada satu lagi perkara yang perlu diperhatikan Jika anda belum memasang Microsoft SQL Server 2008 R2 Native Client, anda mesti pergi ke http: //msdn.microsoft.com Muat turun dan pasang /en-us/library/cc296170(SQL.90).aspx, kerana pakej sambungan daripada Microsoft ini memerlukan sokongan ini.

Setelah semuanya siap, anda boleh menulis kod PHP Jika anda memuat turun Pemacu Pelayan SQL untuk PHP, terdapat dokumen bantuan dalam folder yang dibuka. Anda boleh mencari contoh yang mudah contoh:

Jika sambungan tidak berjaya, mulakan semula pelayan sql dan cuba lagi.
<?php
//本地测试的服务名
$serverName = “(127.0.0.1)”;
//使用sql server身份验证,参数使用数组的形式,一次是用户名,密码,数据库名
//如果你使用的是windows身份验证,那么可以去掉用户名和密码
$connectionInfo = array( “UID”=>”root”,
“PWD”=>”root2010″,
“Database”=>”master”);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo “Connection established.\n”;
}
else
{
echo “Connection could not be established.\n”;
die( print_r( sqlsrv_errors(), true));
}
?>

Atas ialah kandungan terperinci Penyelesaian kepada masalah bahawa sistem php tidak menyokong mssql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn