Yapar) mysqli-> execute (gerçek sorgu yazdırmak için herhangi bir yolu var mı?

4 Cevap php

Ben böyle idam olur karmaşık bir sorgu var:

if ($stmt = $dbi->prepare($pt_query)) {   
        $stmt->bind_param('ssssssssi', $snome,$scognome,$ssocieta,$svia,$slocalita,$sprovincia,$scap,$stelefono,$sfax,$uid);
        $stmt->execute();           
        echo $dbi->error;
        $stmt->close();

    } else {
        printf("Error -> %s\n", $dbi->error);
    }

Bu şey, herhangi bir hata olmadan, sadece veritabanını güncellemek değil başarısız oluyor. Bu şey önce tedavi alır verilerin bir ton olduğundan ben mysqli sorun nerede anlamak amacıyla yürütülüyor gerçek sorgu göstermek için herhangi bir yol olup olmadığını bilmek istiyorum.

Teşekkür ederim.

4 Cevap

Beyanı başarısız olursa ($dbi->error karşıt olarak), sen $stmt->error kontrol etmelisiniz. Bildiğim kadarıyla sorgu asıl metni almak gibi: bu mümkün değil. Hazırlanmış deyimleri kullanırken, kütüphane her ->execute() çağrısı için gerçek bir sorgu dizesi oluşturmak olmadığını özel bir protokol kullanıyor.

Sen MySQL DB kendisi, yani oturum açabilirsiniz. my.ini için bir günlük = logfile satırı eklemek.

Gerekirse daha fazla bilgi için MySQL documentation bakın.

Dayanarak PHP mysql website bunu yapmanın hiçbir gerçek yolu yoktur. Bu sorgu size hataları verir gibi ama this function deneyebilirsiniz.

İşte o yardımcı olabilir bulundu araçtır MySQLi Prepare Statement checker