C’è un modo per stampare la query effettiva che mysqli->esegui() rende?

Ho una query complessa che viene eseguito come questo:

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);
    }

Questa cosa non riesce, senza alcun errore, semplicemente non aggiornare il database. Dal momento che c’è un sacco di dati che viene trattata prima di questa cosa vorrei sapere se c’è un modo per mostrare la query effettiva che mysqli è in esecuzione, per capire dove è il problema.

Grazie.

InformationsquelleAutor 0plus1 | 2010-04-22



4 Replies
  1. 9

    Se l’istruzione non riesce, si dovrebbe verificare $stmt->error (invece di $dbi->error). Come ottenere il testo della query: non è possibile. Quando si utilizzano le istruzioni preparate la biblioteca utilizza un protocollo speciale che non generare un attuale di stringa di query per ogni ->execute() chiamata.

    • Grazie, non sapevo di questo. $stmt->errore mi ha messo nella giusta direzione.
  2. 5

    Si potrebbe attivare la registrazione su il DB MySQL stesso, vale a dire. aggiungi un log=logfile linea per il mio.ini.

    Consultare il Documentazione di MySQL per ulteriori informazioni, se necessario.

Lascia un commento