PHP &

3 Cevap php

Ben SQL Server gelen sonuçlar kesildi alan adlarını sahip olduğunu keşfettiler:

$query = "SELECT some_really_really_long_field_name FROM ..."
...
print_r($row);

array(
    'some_really_really_long_field_n' => 'value'
)

Herkes bu davranışı engellemek için nasıl biliyor mu?

Ben veritabanı sürücüsü ADODB olduğunu düşünüyorum.

Yani saymak zorunda değilsiniz: alan adları 31 karakterden kesildi ediliyor.

SQL Server kendisi uzun alan adları akla görünmüyor, bu yüzden sadece bir char [32] dize tampon yerde uzun isimler içeremez ADODB sürücüsünde olduğunu tahmin edebilirsiniz.

3 Cevap

Muhtemelen on yıllık, önerilmemektedir birlikte MSSQL istemcisi kullanıyorsanız. new MSSQL driver for PHP from Microsoft kullanın veya MSSQL sunucu CD'den MSSQL istemci araçlarını yüklemelisiniz.

: Eğer uzun alan adları, böyle bir şey için bir takma ad kullanabilirsiniz

$query = "SELECT some_really_really_long_field_name AS short_alias FROM ..."

Bu sizin sorununuz için çalışacaktır. Ama veritabanına bağlanmak için PDO MSSQL sürücüsünü kullanmanızı öneririz.

kesik alan adları önlemek için en kolay yolu daha kısa alan adlarını kullanmak için ....

Üzgünüz, bu boktan bir cevap gibi geliyor, ama çok daha temiz, okumak ve bakımı daha kolay ve sadece daha iyi bir uygulamadır.