PHP / json My alan adları 30 karakterden kesildi ediliyor.

2 Cevap php

Tamam ben dediler satıcı yazılım bu parça bir apache php sunucusu ve MySQL veritabanı üzerinde çalışması gereken var.

Ben bu yüzden bir PHP IIS sunucusu üzerine koydu ve ben SQL server üzerinde çalışmak için kod dönüştürülmüş olanların ya da yoktu.

ex.
mysql_select_db -> mssql_select_db
(among other things)

Yani bir php dosyasına aşağıdaki kodu var

$query = "SELECT * FROM TableName WHERE KEY_FIELD = '".$keyField."';";

$result = mssql_query($query); 

$arr = array();
while ( $obj = mssql_fetch_object($result) ) 
{
    $arr[] = $obj;  
}

echo '{"results":'.json_encode($arr).'}';

ve benim sonuçlar (Fiddler 2 ile yakalanan) böyle bir şey bakmak

{"Sonuç": [{"KEY_FIELD": "57", "My30characterlongfieldthatiscu": "GoodValue"}]}

"My30characterlongfieldthatiscu" "My30characterlongfieldthatiscutoff" olmalıdır

Garip, değil mi?

Satıcı uygulaması kendi ucunda mükemmel çalıştığını iddia ediyor.

Ben, bu IIS PHP sınırı çeşit düşünüyorum etrafında bir yolu var ya onu genişletebilirsiniz?

I found this solution http://www.php.net/manual/en/ref.mssql.php#74834 but I don't understand it.

Teşekkürler!

2 Cevap

Bu soruna neden budur - http://bugs.php.net/bug.php?id=33060 bakın.

Ayrıca sütun adlarını değiştirme düşünebilirsiniz - fazla 30 karakter aşırı uzun geliyor.

http://docs.php.net/manual/en/mssql.requirements diyor ki:

Note: On Windows, the DBLIB from Microsoft is used. Functions that return a column name are based on the dbcolname() function in DBLIB. DBLIB was developed for SQL Server 6.x where the max identifier length is 30. For this reason, the maximum column length is 30 characters. On platforms where FreeTDS is used (Linux), this is not a problem.

sqlsrv extension yerine mssql bir seçeneğini kullanarak mı?