-
Query UPDATE con PHP
Buonasera
Voglio poter modificare i dati di un record di una tabella nel mio database, per far questo voglio utilizzare una form.
Il mio problema è che i dati non vengono aggiornati nel database, nonostante MySQL non restituisca errori di sintassi o altro.
(O meglio, vengono aggiornate, ma sembra che non riconosca il tipo di dato, ad esempio ho due campi di tipo 'date' e vengono aggiornati sotto forma di 0000-00-00 , oppure un campo varchar viene messo vuoto)
Vi posto il codice:
Codice PHP:
<?php
$luogo= $_GET['luogo'];
$data_partenza=$_GET['data_partenza'];
$data_arrivo=$_GET['data_arrivo'];
echo $data_arrivo." ".$data_partenza." ".$luogo;
include "config.php"; // includo il file di connessione al Db
$sql="UPDATE eventi SET luogo='$luogo', data_arrivo='$data_arrivo', data_partenza='$data_partenza' WHERE nome_evento='".$name."'";
$query=mysql_query($sql) or die (mysql_error());
?>
Grazie per l'aiuto
-
Fatti stampare il contenuto di $sql e verifica che la query sia corretta.
-
Risolto, grazie al tuo suggerimento ho scoperto che non vedeva la variabile $name, correggendo l'errore, funziona perfettamente, grazie!!
-
Considera anche il passaggio dalle funzioni mysql_ (già deprecate!) a qualcosa come mysqli_ oppure PDO, che rendono lavorare con il database meno faticoso:
Ad esempio, PDO si occupa per te di fare escape dei parametri, limitando certi rischi:
Codice PHP:
$db = new PDO(....);
$st = $db->prepare("UPDATE eventi SET luogo = ?, data_arrivo = ?, data_partenza = ? WHERE nome_evento = ?");
$st->execute([ $luogo, $arrivo, $partenza, $nome ]);
.