problema con Insert

ho un form di iscizione di una pagina in php che passa a se stessa i dati col metodo post. facciamo per esempio che i dati siano solo nome e cognome.

come devo strutturare il comando insert per scrivere i dati nel database?

inviato 10 anni fa
AndyB
X 0 X
$nome = $_POST['campo_nome'];

$cognome = $_POST['cognome'];

$insert = "INSERT INTO `tabela` ('nome','cognome') VALUES ('".$nome."','".$cognome."');";

$query = mysql_query($insert);

if (! $query)

{

echo "Errore" . mysql_error();

}

else

{

//do something

}

credo sia tutto giusto , dovrebbe funzionare , in pratica uso l'operatore (si chiama così vero?) di concatenamento . per unire  + variabili in una , in modo da creare una query 'dinamica'

ciao

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Si potrebbe sfruttare l'utilizzo dei doppi apici per inserire le variabili direttamente nella query:

$insert = "INSERT INTO tabella ('nome','cognome') VALUES ('$nome','$cognome')";

C'è però da stare attenti ai valori che arrivano via $_POST. Infatti, se nel php.ini la direttiva "magic_quotes_gpc" è impostata a OFF, sarà necessario "proteggere" la stringa da eventuali apici presenti nel cognome e nel nome. Per fare ciò conviene verificare il valore di magic_quotes_gpc con la funzione get_magic_quotes_gpc ed in caso negativo procedere "manualmente" alla protezione delle stringhe con addslashes. In caso contrario non è necessaria questa operazione poiché ci pensa il PHP a proteggere le stringhe con i backslash:

if (!get_magic_quotes_gpc()) {

   $nome = addslashes($_POST['campo_nome']);

   $cognome = addslashes($_POST['cognome']); 

} else {

   $nome = $_POST['campo_nome'];

   $cognome = $_POST['cognome']; 

}

$insert = "INSERT INTO tabella ('nome','cognome') VALUES ('$nome','$cognome')";

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda