PHP連接SQLSERVER及中文亂碼問題


PHP連接SQLSERVER

1、PHP 5.3及以后版本不再支持mssql模塊,應使用SQLSRV或PDO_SQLSRV;

2、下載 PHP 驅動程序。 http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 內含Windows平台各種版本擴展文件,支持SQL2005及以上版本

3、復制所需文件如:php_sqlsrv_73_nts_x64.dll (PHP7.3非線程安全64位版)到php\ext\ 目錄下,修改php.ini 添加擴展 extension=php_sqlsrv_73_nts_x64

 

如果提示ODBC問題

Connection failed: SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server.

是因為使用32位數據庫,需要安裝32位ODBC驅動(64位系統未安裝)

https://www.microsoft.com/en-us/download/confirmation.aspx?id=36434

下載msodbcsql.msi安裝即可。

 

PHP連接SQLSERVER中文亂碼問題

1、SQL語句中有中文會導致查詢失敗;

2、查詢結果有中文會顯示亂碼。

 

解決方法(較簡單,建議使用):

 

1、PHP文件保存時選ANSI編碼;

  附:VS Code 改變默認文字編碼,File(文件)->Preferences(首選項)->Usersettings(設置),搜索encoding,將utf8改為gbk

2、PHP文件頭加入

header("Content-Type: text/html; CHARSET=GBK");

 

解決方法(較麻煩):
 
1、PHP文件保持默認UTF-8編碼;
2、查詢前對SQL轉碼
$sql = "SELECT '是'='是'"; 
$sql=iconv('UTF-8','GBK',$sql);

3、查詢結果對含中文列轉碼

$stmt = sqlsrv_query( $conn, $sql);

if($stmt){
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
        echo iconv('GBK','UTF-8',$row[0])."<br />";
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM