Metti in $sql SOLO la stringa:
Codice PHP:$sql = "INSERT INTO bla bla bla";
Metti in $sql SOLO la stringa:
Codice PHP:$sql = "INSERT INTO bla bla bla";
Query non valida: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE email='prova@hotmail.com'' at line 7
$sql = "..........";
mysql_query($sql)
Ultima modifica di Punix; 06-07-2017 a 12:57
and o virgole salta fuori sempre questo:
Query non valida: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE email='prova@hotmail.com'' at line 7
esce fuori sto codice aramaico hahah che presumo sia l immagine..codice:INSERT INTO users SET nome_img ='facebook.png', tipo_img ='image/png', img ='PNG \0\0\0 IHDR\0\0\02\0\0\02\0\0\0?\0\0\0 pHYs\0\0\0\0\0\0\0\0 cHRM\0\0z%\0\0\0\0\0\0\0\0u0\0\0`\0\0:\0\0o_F\0\0RIDATxܚylTUo:-euZW4XFPSMEnQ4jwE 5FE#hb(Hq|/2 mOtfޛw99{iehN \0\0u7]V\0\\\0<ױ#$`?`&p ej j`+Pb{\0>0wR@1\03߁Z ;5 b@ G\0(8(\0N\0 Ƙ״4 8ZH pCyNlfx .Hș&\0\0G灔Id@< b]wB0>JVohub:c=\0ۀO@9$0Bg-cLb׀Z^J`hDѩk#m>z#@|@n\0v7˗ShzY>RGN[+s!~\0B<>yAs`%gb*ӏFUEtTyQ8 l%ֺ@1T!+lRZbDXV ޟ㋔ށcbrm ZʍlK`zkBpb*}0p ƌCYY%%%DQǡEzŊNc`-;rSp!FZbΝԩS\'ƍAXP-f:g[ RB?;ɓ\' =冨֪مt\'֊?\0e}=6{| I$l9ި8LnhX dg]&ڂ^r_7_4g#jZ5qƑL&9rd㕕RTTĆ XreP0o\'(CVٳ{=^UUEUU\0V# \\ԩy^%b:2WTK{{;Dx<5$xD\"#&DzƘle1_3\'ctvv2cw:^SSòeˈFtttSR&pZw[qDwAֶ#xkk+6~\0;Z]qziݾum Yj2m o\"}x֮#EOuó~մ]~zF$!m)7Jm\0hy}y#|iT{\09,~7l\0Ȉ8>Dofjz *`%x6ɛd#g8 iwoL[8iV/jL {hh&ъ&j5.5Ɯ+oz0Q*Ɣ wnnnfŊtwwJFNި/&0]JƘibJ%Y^/0p^t\0gIAF>\'uZǐQ/\'#4D;Dmtղ8dJJ\0Zjӧ/=*&lHoiYcpb<n6뫫.S\0~n)4\\T(~KMxM8-]b)#92p˺y<)v]7\'V \0n##tr\0VQ/B)Đ3w5N `%U-Qy04 \'hxZ:5kNyJ3Ҽ]#)F-d9xQl\0-W
il problema forse sta nella condizione email? bho
Stai sbagliando la query, non ci vanno gli "and" tra i campi da aggiornare
codice:"INSERT INTO users SET nome_img ='$nome_file_vero', tipo_img ='$tipo_file', img ='$dati_file' WHERE email='$email'"
sto script funziona
ma non mi serve a nulla visto che crea un record inutile nel db attribuito a nessun utente...per questo motivo ho inserito l utente...volevo che st immagine inserita fosse attribuita all utente con quella determinata email
<?php
// Verifico eventuali problemi nell'upload del file
if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK))
echo "Errore nell'invio del file. Riprova!";
// Connessione e selezione del database
mysql_connect("xxxx", "xxxx", "xxx") or die(mysql_error());
mysql_select_db("xxxx") or die(mysql_error());
// Recupero delle informazioni sul file inviato
$nome_file_temporaneo = $_FILES["file_inviato"]["tmp_name"];
$nome_file_vero = $_FILES["file_inviato"]["name"];
$tipo_file = $_FILES["file_inviato"]["type"];
// Leggo il contenuto del file
$dati_file = file_get_contents($nome_file_temporaneo);
// Preparo il contenuto del file per la query sql
$dati_file = addslashes($dati_file);
// Query per inserire il file nel DB
$query = "UPDATE users SET
nome_img = '$nome_file_vero',
tipo_img = '$tipo_file',
img = '$dati_file'";
mysql_query($query)
or die("Query non valida: " . mysql_error());
// Messaggio di successo
echo "Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente!";
?>
Ultima modifica di Punix; 06-07-2017 a 13:04
fai una cosa, dopo $sql = "INSERT ...";
fai una stampa
echo $sql;
e controlla se sintatticamente corretta (o postala qui)
si mi sa sta proprio nell email... entrando nel db mi sono reso conto che ha impostato la stesso valore in tutti i campi img , nome_img , tipo_img per TUTTI GLI UTENTI presenti nel db...che casotto ....
se tolgo questo pezzo:
lasciando ovviamente la connessione e la selezione al db...mi funziona tutto....soltanto che se uno sbaglia e-mail mi riporta sempre al messaggio "immagine inserita correttamente"..soltanto che nel db non succede nulla, e l utente crede di aver inserito l immaginecodice:if ($email == "$email"){ mysql_connect("xxxx", "xxx", "xxxx") or die(mysql_error()); mysql_select_db("xxxx") or die(mysql_error()); $sqlquery = "SELECT * FROM users WHERE email = '".$email."'"; $result = mysql_query($sqlquery); if (mysql_num_rows($result) == "0"){ echo "l'email inserita non esiste"; } }...sto controllo quindi mi serve per verificare che l' email inserita nel form esista prima che mi faccia la query per l inserimento dell immagine
alleluja funziona...
ho separato il form html dal codice php ed partito tutto...bho
upload.html
write_db.phpcodice:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Carica file nel DB</title> </head> <body> <p>Seleziona un file da memorizzare nel database:</p> <form name="upload" enctype="multipart/form-data" method="post" action="write_db.php"> <p> <input type="file" name="file_inviato"><br><br> Inserisci l' E-mail con cui ti sei registrato!<br><br> E-mail : <input type="text" name="email" /><br><br> <input type="submit" name="invia" value="Invia file"> </p> </form> </body> </html>
adesso ho un altro piccolo problemino...sto provando ad inserire dei controlli nella prima parte del codice....codice:<?php $email = $_POST['email']; // Verifico eventuali problemi nell'upload del file if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK)) { echo "Errore nell'invio del file immagine. Hai dimenticato ad inserirlo o l'estensione del file inserito non è supportata!"; } elseif ($email == ""){ echo "Non lasciare vuoto il campo e-mail"; } if ($email == "$email"){ $connessione = mysql_connect("xxx", "xxx", "xxxx") or die(mysql_error()); mysql_select_db("xxx") or die(mysql_error()); $sqlquery = "SELECT * FROM users WHERE email = '".$email."'"; $result = mysql_query($sqlquery); if (mysql_num_rows($result) == "0"){ echo "l'email inserita non esiste"; } }else { // Recupero delle informazioni sul file inviato $nome_file_temporaneo = $_FILES["file_inviato"]["tmp_name"]; $nome_file_vero = $_FILES["file_inviato"]["name"]; $tipo_file = $_FILES["file_inviato"]["type"]; // Leggo il contenuto del file $dati_file = file_get_contents($nome_file_temporaneo); // Preparo il contenuto del file per la query sql $dati_file = addslashes($dati_file); // Query per inserire il file nel DB $query = "UPDATE users SET nome_img = '$nome_file_vero', tipo_img = '$tipo_file', img = '$dati_file' WHERE email='$email' "; mysql_query($query) or die("Query non valida: " . mysql_error()); // Messaggio di successo echo "Immagine <b>$nome_file_vero</b> inserita correttamente!"; } ?>
codice:$email = $_POST['email']; // Verifico eventuali problemi nell'upload del file if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK)) { echo "Errore nell'invio del file immagine. Hai dimenticato ad inserirlo o l'estensione del file inserito non è supportata!"; } elseif ($email == ""){ echo "Non lasciare vuoto il campo e-mail"; } if ($email == "$email"){ $connessione = mysql_connect("xxx", "xxxx", "xxx") or die(mysql_error()); mysql_select_db("xxxx") or die(mysql_error()); $sqlquery = "SELECT * FROM users WHERE email = '".$email."'"; $result = mysql_query($sqlquery); if (mysql_num_rows($result) == "0"){ echo "l'email inserita non esiste"; } }else { // Recupero delle informazioni sul file inviato
lo script esegue i controlli , ma si blocca all ultimo else , restituendomi una pagina vuota bianca invece di proseguire....forse ho fatto un casino con tutti sti if annidati?