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
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.
Nasıl node.js uygulama hata ayıklama...
Nasıl hata ayıklama Firebug (veya benz...
Nasıl Google hata ayıklama iletileri y...
Nasıl PHP betikleri hata ayıklama musu...
Django hata ayıklama nasıl, iyi mi?...