簡體   English   中英

PHP中的MSSQL查詢問題和查詢文本數據

[英]MSSQL Query issue in PHP and querying text data

我正在嘗試在PHP中進行查詢以連接並從MSSQL EXPRESS(2008 R2)數據庫中提取數據。 但是,當我從數據庫中提取基於ntext的數據時遇到錯誤。

錯誤是;

只能使用Unicode排序規則或ntext數據的Unicode數據不能使用DB-Library(例如ISQL)或ODBC 3.7或更早版本發送給客戶端。 (嚴重性16)在

而我的劇本是

    $myServer = ".\SQLEXPRESS";
    $myUser = "sa";
    $myPass = "blablabla";
    $myDB = "test"; 

    //connection to the database
    $dbhandle = mssql_connect($myServer, $myUser, $myPass)
      or die("Couldn't connect to SQL Server on $myServer"); 

    //select a database to work with
    $selected = mssql_select_db($myDB, $dbhandle)
      or die("Couldn't open database $myDB"); 

    //declare the SQL statement that will query the database
    $query = "SELECT * FROM dbo.table WHERE query='2'";
    //$query .= "FROM dbo.table  ";
    //$query .= "WHERE query='2'"; 

    //execute the SQL query and return records
    $result = mssql_query($query);

    $numRows = mssql_num_rows($result); 
    echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>"; 

    //display the results 
    while($row = mssql_fetch_array($result))
    {
      echo "<li>" . $row["query"]. "</li>";
    }
    //close the connection
    mssql_close($dbhandle); 

在這方面的任何幫助表示贊賞....

謝謝 ....

mssql_query() 手冊頁上的注釋中的mssql_query()選項

  • SELECT CAST(field1 AS TEXT) AS field1 FROM table
  • /etc/freetds.conf的版本從4.2更改為8.0(如果PHP服務器是* nix)
  • 避免SELECT *查詢

如果在該頁面上搜索ntext ,則更多。

您可能需要了解以下幾點:

  1. 為Debian(Lenny / Squeeze)安裝mssql支持:

    apt-get安裝php5-sybase

  2. 當您收到此錯誤消息時:“僅使用Unicode排序規則或ntext數據的Unicode數據無法使用DB-Library(例如ISQL)或ODBC 3.7或更早版本發送給客戶端。”

    在/etc/freetds/freetds.conf中添加以下兩行(最后兩行):

     [global] ;tds version = 4.2 tds version = 8.0 client charset = UTF-8 

    您也可以在php.ini中編輯“字符集”(但是如果您以前在freetds.conf中進行過編輯則不需要): 指定客戶端字符集。 如果為空或未設置,則使用freetds.comf的客戶端字符集; 僅在與FreeTDS一起編譯時使用

     mssql.charset = "UTF-8" 
  3. 如果需要unicode支持,請使用nchar / nvarchar / ntext列類型。

就我而言,我需要安裝:

sudo apt-get install php-sybase

並修改/etc/freetds.conf文件:

...
[global]
    # TDS protocol version
;   tds version = 4.2
tds version = 8.0
client charset = UTF-8
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM