SORU
9 Mart 2010, Salı


Nasıl PDO veritabanı sorguları hata ayıklama?

PDO geçmeden önce, dizeleri birleştirerek PHP SQL sorgu oluşturdum. Eğer var veritabanı sözdizimi hatası, ben sadece echo son SQL sorgu dizesi, deneyin kendim veritabanı ve sıkılması kadar Sabit hata, sonra onu geri koyun içine kodu.

PDO hazırlanmış deyimleri daha hızlı ve daha iyi ve daha güvenli, ama bir şey beni rahatsız ediyor: ben hiç veritabanına gönderilmiş gibi son sorgu. Apache benim günlük ya da özel günlük dosyası (catch bir blok içinde hataları log) sözdizimi hakkında hataları alıyorum, onları neden olan bir sorgu göremiyorum.

Bir yol var, tam bir SQL sorgu veritabanına PDO tarafından gönderilen yakalama ve bir dosyaya Kaydet.

CEVAP
9 Mart 2010, Salı


Bu ' diyorsunuz

Ben asla son sorgu bakın veritabanı için gönderdi

Hazırlanmış deyimleri kullanırken . aslında ^strong>bir gibi bir şey yoktur "son sorgu":

  • İlk olarak, bir açıklama DB gönderilir ve orada hazır
    • Veritabanı sorgu ayrıştırır ve bir iç temsilini oluşturur
  • Ve değişkenlere bağlama ve deyimi çalıştırdığınızda, sadece değişkenleri veritabanına gönderilir
    • Ve veritabanı "ifadesinin kendi iç temsil . değerleri enjekte


Yani, Sorunuzun cevabı için :

Bir yol var tam yakalamak. SQL sorgu veritabanına PDO ile gönderildi ve bir dosyaya Kaydet.

No : Yok "tam SQL sorgu . /^" her yerde, onu yakalamak için bir yolu yoktur.>em


Yapabileceğiniz en iyi şey, hata ayıklama amacıyla," "" SQL sorgu deyimi (SQL dizesi içine değerleri enjekte edilerek. gerçek bir "yeniden inşa edilir

Ben genellikle ne, bu tür durumlarda,

  • açıklamada, yer tutucular ile karşılık gelen SQL kodu eko
  • ve var_dump kullanın(veya başka türlü)sonra, parametrelerin değerleri görüntülemek için
  • Bu eğer "Çalıştır" sorgu. gerçek para bile genellikle olası bir hata için yeterlidir,

Bu hata ayıklama gelince çok iyi değil, ama hazır deyimler fiyatı ve getirdikleri avantajları var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014
  • Rhapsody

    Rhapsody

    7 ŞUBAT 2008
  • Triune Films

    Triune Films

    9 ŞUBAT 2006