Visualizzazione risultati 1 fino 2 di 2

Discussione: errore query update

  1. #1
    Guest

    Predefinito errore query update

    Salve a tutti non riesco a risolvere in nessun modo il seguente errore

    Errormessage: 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 'Europa medievale. Attualmente è un monastero della congregazione benedettina c' at line 1

    la query a cui fa riferimento è la seguente:


    Codice PHP:
    $sql = $mysqli->query("UPDATE tbl_panorami SET visibilita = '$visibilita', ordine = '$ordine', Titolo = '$titolo_monumento', Descrizione = '$descrizione_monumento', Immagine = '$img', id_regione= '$regione_monumento', luogo = '$luogo_monumento', provincia = '$provincia_monumento', realta_vr = '$tour', tipo_1= '$Gen2', tipo_2 = '$Gen2', tipo_3 = '$Gen3', latitudine = '$latitudine', longitudine= '$longitudine', meta_description = '$meta_description', keyword= '$keywords', lingua = '$lang', titolo_sito= '$title', nome_pagina = '$nome_pagina', url_statico= '$url_statico' WHERE id = '$id';");
    if (!
    $sql) {
    printf("Errormessage: %s\n", $mysqli->error);
    }
    Credo sia importante specificare che "Europa medievale. Attualmente è un monastero della congregazione benedettina c" è un frammento della stringa contenuta nella variabile $descrizione_monumento.

    Grazie a tutti per l'aiuto

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    L'errore è causato dal fatto che stai cercando di inserire delle stringhe contenenti apostrofi, doppi apici o altra punteggiatura "ambigua" dal punto di vista di MySQL.

    A titolo di esempio, supponiamo che la variabile $descrizione_monumento contenga la stringa l'Europa medievale (nota l'apostrofo). Con il metodo da te usato per costruire le interrogazioni il risultato è:
    Codice:
    UPDATE tbl_panorami SET Descrizione = 'L'  Europa medievale'
    che è sintatticamente scorretto (gli spazi sono stati aggiunti per chiarezza).

    Prima di inserire delle stringe nella base di dati dovresti usare funzioni come addslashes o, meglio ancora, usare i prepared statement.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •