Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Recuperare la query sql eseguita

    Ciao a tutti,
    ho un errore con l'esecuzione di una insert su db mySQL che non riesco a capire,
    errore: 1064 --- You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sqlQuery' at line 1.

    c'� un modo per estrarre la query completa con tutti i parametri associati per verificare qual � il problema?


    Grazie.
    Al



    ho provato, ma senza successo, con:
    $stmt->debugDumpParams();
    echo var_dump($stmt->fullQuery);
    echo var_dump($stmt->fetchAll());


    di seguito vi riporto estratto di codice che utilizzo

    Codice PHP:
    $sqlQuery "INSERT INTO                        "$this->table_name ."                    SET                        url = :url,                         url_detail = :url_detail,                         title = :title,                         description = :description,
                            ........
                            .........

    $stmt = $this->conn->prepare($sqlQuery);

    $this->url=htmlspecialchars(strip_tags($this->url));$this->url_detail=htmlspecialchars(strip_tags($this->url_detail));$this->title=htmlspecialchars(strip_tags($this->title));$this->description=htmlspecialchars(strip_tags($this->description));
    .........
    .........


    // bind data
    $stmt->bindParam(":url", $this->url);$stmt->bindParam(":url_detail", $this->url_detail);$stmt->bindParam(":title", $this->title);$stmt->bindParam(":description", $this->description);
    .........
    .........

    if(
    $stmt->execute()){     return true;} 

  2. #2
    a occhio (molto a occhio, vista la formattazione...) direi che stati usando un verbo (SET) che appartiene alla UPDATE, non alla INSERT INTO

    cfr qui https://dev.mysql.com/doc/refman/8.0/en/insert.html e qui https://www.w3schools.com/sql/sql_insert.asp


  3. #3
    In effetti era sbagliata, grazie per la segnalazione, ma anche correggendo con la giusta sintassi per la Insert mi dà ancora errore.


    Che tu sappia non c'è un modo per stampare la query completa con i valori dei parametri passati?

  4. #4
    non conosco bene PHP, ma da una ricerca su google pare non sia possibile, forse con qualche log del db...

    riposta il codice (però stavolta formattato bene, pls )

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    Quote Originariamente inviata da optime Visualizza il messaggio
    pare non sia possibile
    ma che dici?

    manco io conosco bene php... ma figurati se non è possibile stampare la query!


    dovrebbe essere una cosa del genere...
    codice:
    print $sqlQuery
    poi fermi il processo con
    
    exit();
    oppure
    die();

  6. #6
    vincent.zeno, se guardi la documentazione https://www.php.net/manual/en/mysqli...statements.php vedrai che la parte parametrizzata viene completata lato db
    Basic workflow
    The prepared statement execution consists of two stages: prepare and execute. At the prepare stage a statement template is sent to the database server. The server performs a syntax check and initializes server internal resources for later use.


    quindi lato php puoi solo stampare il template, non la query effettivamente eseguita

  7. #7
    Risolto.

    Il problema era l'oggetto connection che chiamavo che era sbagliato.

  8. #8
    Quote Originariamente inviata da almi2001 Visualizza il messaggio
    Risolto.

    Il problema era l'oggetto connection che chiamavo che era sbagliato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.