PDO veritabanı tarafından kullanılan SQL bağımsız mı?

2 Cevap php

Farklı veritabanları SQL kendi uygulamalarında küçük farklılıklar var. PDO bu ele?

Ben bir MySQL veritabanı erişim PDO ile kullanın ve daha sonra veritabanı farklı bir türünü kullanarak başlamak için PDO söyle bir SQL sorgusu yazarsanız, sorgu çalışma durur? Işe devam böylece veya 'dönüştürmek' sorgu PDO olacak?

PDO bu yapmazsa, bana belirli bir sözdizimine göre SQL yazmak için, ve farklı veritabanları üzerinde çalışacak böylece daha sonra kütüphane SQL dönüştürme işleyeceği izin herhangi bir PHP kütüphaneler var mı?

2 Cevap

PHP manuel:

PDO provides a data-access abstraction layer, which means that, regardless of which database you're using, you use the same functions to issue queries and fetch data. PDO does not provide a database abstraction; it doesn't rewrite SQL or emulate missing features. You should use a full-blown abstraction layer if you need that facility.

Yani, veritabanı değiştirmek ve her şey eskisi gibi çalıştığını bekleyemezsiniz. Bu kullandığınız sorguları bağlıdır. "Basit" SQL92 sorguları ya da belirli bir db için özel özellikleri kullanabilirsiniz do ...

Ex "LIMIT 10,20" ile bir mysql sorgu bir Oracle DB veya SQLite ile çalışmak için Rewritting gerekir. Onlar, "LİMİT 20 10 OFFSET" kullanımı

PHP sizin için otomatik olarak SQL çevirecektir kütüphaneleri yok. Işlevsellik bu tür isterseniz Doktrini gibi ORM uygulanmasına bakmak gerekir. Projenizde kullanarak, SQL artı bir dize dışarı çalkalama gibi basit olmaktan durur yazma ile ilgili bir öğrenme eğrisi vardır bu yana tabii ödemek için bir fiyat vardır. Kesinlikle olumlu veritabanı bağımsızdır kod ihtiyacınız varsa kendinize sormalısınız.