Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    3

    [MySql] errore sintassi update

    Buongiorno,
    sono nuovo del forum, precedentemente utilizzavo un famoso programma, che comunque inserisce enormi quantità di codice.
    ora sto provando a lavorare manualmente.

    ho comunque un problema con aggiornamento del DB.

    creata una pagina (mostragare) che mostra tutti i record >> selezione record
    invio ad una pagina (modigare) con form che mostra i dati del record inseriti per la modifica
    invio con POST alla pagina di modifica (modigare2)
    sino a qui sembra tutto OK
    la pagina di modifica (modigare2) mi da il seguente errore

    Errore nella query UPDATE elenco_gare_LB SET tipo='CO', evento='provaprova', luogo='prova' , referente='prova' , note='prova' , organizza='prova' , garagg=2010-01-01 , stopdata=2010-01-01 23:00:00 WHERE ID_gare=000044 : 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 '23:00:00 WHERE ID_gare=000044' at line 11

    i dati sono "stringhe" ad esclusione di due campi data e l'ID che è un INT.

    il codice completo della pagina:
    <?php
    // recupero i campi di tipo "stringa"
    $tipo = trim($_POST['tipo']);
    $evento = trim($_POST['evento']);
    $luogo = trim($_POST['luogo']);
    $referente = trim($_POST['referente']);
    $note = trim($_POST['note']);
    $organizza = trim($_POST['organizza']);
    // verifico se devo eliminare gli slash inseriti automaticamente da PHP
    if(get_magic_quotes_gpc())
    {
    $tipo = stripslashes($tipo);
    $evento = stripslashes($evento);
    $luogo = stripslashes($luogo);
    $referente = stripslashes($referente);
    $note = stripslashes($note);
    $organizza = stripslashes($organizza);
    }
    $tipo = mysql_real_escape_string($tipo);
    $evento = mysql_real_escape_string($evento);
    $luogo = mysql_real_escape_string($luogo);
    $referente = mysql_real_escape_string($referente);
    $note = mysql_real_escape_string($note);
    $organizza = mysql_real_escape_string($organizza);
    // recupero gli altri campi del form
    $garagg = ($_POST['garagg']);
    $stopdata = ($_POST['stopdata']);
    $ID_gare = ($_POST['ID_gare']);
    // verifico la presenza dei campi obbligatori
    if(!$evento)
    {
    $messaggio = urlencode("Non hai inserito la gara");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }
    if(!$referente)
    {
    $messaggio = urlencode("Non hai inserito il responsabile iscrizioni");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }
    // preparo la query
    $query = "UPDATE
    elenco_gare_LB
    SET
    tipo='$tipo',
    evento='$evento',
    luogo='$luogo' ,
    referente='$referente' ,
    note='$note' ,
    organizza='$organizza' ,
    garagg=$garagg ,
    stopdata=$stopdata
    WHERE ID_gare=$ID_gare ";
    // invio la query
    $result = mysql_query($query);
    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }

    // chiudo la connessione a MySQL
    mysql_close();

    $messaggio = urlencode('Aggiornamento effettuato con successo');
    header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
    ?>

    Dove sbaglio ??

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    id_gare è numerico o testuale? (vedo gli 0 che mi fanno pensare sia testuale ed allora va tra ' ' )

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    3
    intanto grazie per l'attenzione.

    ID_gare è numerico tipo INT(6)
    ho comunque provato a metterlo anche tra ' ', ma non cambia
    diventa solamente WHERE ID_gare= '000044'' at line 11....

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Come specificato nel messaggio d'errore devi racchiudere anche i campi di tipo date and datetime tra apici

    stopdata='2010-01-01 23:00:00'

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    3
    [ RISOLTO ]

    Grazie mille !

    anche i campi date e datetime vanno tra ' '

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.