In quale riga si verifica l'errore? Nella riga della query?Originariamente inviato da Dirk Pitt
Ho questa insert:
che mi restituisce il maledetto errore syntax error, unexpected T_STRING. Errore che però non riesco a trovare.Codice PHP:$query_insert = "INSERT INTO d_utente (data_iscriz, username, password, session, nome, cognome, email, email_public, sex, data_nascita, nazione, localita, nome_blog, url_blog, url_feed, status) VALUES ('" . $data_iscriz . "', '" . $username_reg . "', '" . $password_reg . "', '" . $session . "', '" . $nome . "', '" . $cognome . "', '" . $email . "', '" . $email_public . "', '" . $sex . "', '" . $data_nascita . "', '" . $nazione . "', '" . $localita . "', '" . $blog_ttl . "', '" . $blog_url . "', '" . $blog_rss . "', '" . $status . "')";
Qualcuno di voi ha la vista migliore della mia?
Thanks
Può darsi anche che l'errore si trovi prima della riga indicata, per esempio una parentesi o delle virgolette non chiuse.
Innanzitutto ti consiglio di verticalizzare il codice, è più facile da seguire per la vista.
Specialmente se ci sono parti che si ripetono e creano un'ancora visiva.
E' il motivo per cui, con il sopravvento dei widescreen LCD, la maggior parte dei siti internet negli ultimi 4-5 anni ha rivalutato i layout a larghezza fissa, 800-1000 pixel al massimo.
Ti consiglio di verificare il contenuto delle variabili.
Io passerei tutte le stringhe a mysql_escape_string():
In questo modo hai anche un'indicazione di errore più esplicativa, in quanto la riga indicata dal parser definisce la causa in modo più isolato.Codice PHP:$query_insert = "INSERT INTO d_utente (data_iscriz, username, password, session, nome, cognome, email, email_public, sex, data_nascita, nazione, localita, nome_blog, url_blog, url_feed, status)
VALUES (
'".mysql_escape_string($data_iscriz)."',
'".mysql_escape_string($username_reg)."',
'".mysql_escape_string($password_reg)."',
'".mysql_escape_string($session)."',
'".mysql_escape_string($nome)."',
'".mysql_escape_string($cognome)."',
'".mysql_escape_string($email)."',
'".mysql_escape_string($email_public)."',
'".mysql_escape_string($sex)."',
'".mysql_escape_string($data_nascita)."',
'".mysql_escape_string($nazione)."',
'".mysql_escape_string($localita)."',
'".mysql_escape_string($blog_ttl)."',
'".mysql_escape_string($blog_url)."',
'".mysql_escape_string($blog_rss)."',
'".mysql_escape_string($status)."'
)";
E' chiaro che sui campi che non sono stringhe è inutile passarcela, quindi elimina la funzione.
Secondo me così risolverai.

Rispondi quotando