Stack Overflow'da bu sorunun birkaç kez tekrarlandığını gördüm, ancak hiçbiri sorunu yeterince araştırmıyor (veya en azından bana yardımcı olacak şekilde)
Buradaki sorun, bir DB sorgusunun PHP'de tamsayı sütunları için tamsayı veri türleri döndürmesidir. Bunun yerine sorgu, her sütunu bir dize türü olarak döndürür.
Yalnızca sonuçların dizeye dönüştürülmediğinden emin olmak için "PDO :: ATTR_STRINGIFY_FETCHES" öğesinin false olduğundan emin oldum .
Gördüğüm cevaplar:
- Yapılamaz
- Hayır, Mac OS X yüklü PHP / MySQL üzerinde çalışıyor
- Kodunuza tüm değerlerinizi dökün yazın
- Hayır, bunu yapmayacağım
- Merak etmeyin, PHP gevşek yazılmıştır
- Verilerim JSON olarak çıktı ve diğer birçok hizmet tarafından kullanılıyor, bazıları verilerin doğru biçimde olmasını gerektiriyor
Araştırmamdan bunun bir sürücü uygulama sorunu olduğunu anlıyorum.
Birçok kaynak, MySQL yerel sürücüsünün sayısal türlerin döndürülmesini desteklemediğini iddia ediyor. Bu, Mac OS X üzerinde çalıştığı için doğru görünmüyor. " Linux'taki MySQL yerel sürücüsü özelliği desteklemiyor" demek istemedikçe.
Bu, Mac OS X'e yüklediğim sürücü / ortam hakkında özel bir şey olduğu anlamına geliyor. Bir düzeltme uygulamak için farklılıkları belirlemeye çalışıyorum, ancak bunları nasıl kontrol edeceğime dair bilgilerimle sınırlıyım.
Farklılıklar:
- OS X üzerinde PHP, Home Brew aracılığıyla derlenmiş ve kurulmuştur
- Ubuntu'da PHP, "apt-get install php5-dev" aracılığıyla kuruldu
- OS X üzerinde PHP, OS X üzerinde de çalışan bir MySQL sunucusuna bağlanıyor
- Sunucu sürümü: 5.1.71-log Kaynak dağıtımı
- Ubuntu'daki PHP, bir Rackspace Bulut Veritabanına bağlanıyor
- Sunucu sürümü: 5.1.66-0 + squeeze1 (Debian)
Ubuntu ortamı
- Sürüm: 10.04.1
- PHP 5.4.21-1 + debphp.org ~ lucid + 1 (cli) (inşa: 21 Ekim 2013 08:14:37)
php -i
pdo_mysql
MySQL için PDO Sürücüsü => etkin İstemci API sürümü => 5.1.72
Mac OS X ortamı
- 10.7.5
- PHP 5.4.16 (cli) (inşa: 22 Ağu 2013 09:05:58)
php -i
pdo_mysql
MySQL için PDO Sürücüsü => etkin İstemci API sürümü => mysqlnd 5.0.10 - 20111026 - $ Id: e707c415db32080b3752b232487a435ee0372157 $
PDO bayrakları kullanıldı
PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
Herhangi bir yardım ve uzmanlık takdir edilecektir :) Cevabı bulursam kesinlikle buraya tekrar yazacağım.