PDA

View Full Version : [PHP - MySQL] Problema inserimento query


Albume
13-01-2011, 12:00
Salve a tutti, ho un piccolo problema con una query MySQL.
La query è questa:
INSERT INTO `baci_2011`.`iscritti` (`ID`, `Nome`, `Cognome`, `Ragione Sociale`, `Descrizione Attivita`, `Via`, `Citta`, `CAP`, `Provincia`, `Paese`, `E-mail`, `Conferma E-Mail`, `Telefono`, `Fax`, `Cellulare`, `Codice Fiscale`, `Partita IVA`, `Corso Base`, `Intermedio/Avanzato`, `Si competizioni`, `No competizioni`, `Competizioni`, `Grande scultura`, `Colonna Originale`, `Center piece`, `Minutes figure David Grist`, `Membro Grande S`, `Entrambi i giorni`, `Note`, `CC`, `Scadenza`, `Pagamento`) VALUES (NULL, 'Prova1' ,'Prova1' ,'Prova1' ,'Prova1' ,'Prova1' ,'Prova1' ,'50100' ,'Prova1' ,'Italy' ,'[email protected]' ,'[email protected]' ,'055' ,'055' ,'3463705508' ,'Blablabla' ,'11221000201' ,'Si' ,'X' ,'X' ,'X' ,'Competition_no' ,'X' ,'X' ,'X' ,'X' ,'X' ,'X' ,'U' ,'X' ,'X' ,'Bank_transfer' ).

ed è generata da questo codice PHP:
$query = "INSERT INTO `baci_2011`.`iscritti` (`ID`, `Nome`, `Cognome`, `Ragione Sociale`, `Descrizione Attivita`, `Via`, `Citta`, `CAP`, `Provincia`, `Paese`, `E-mail`, `Conferma E-Mail`, `Telefono`, `Fax`, `Cellulare`, `Codice Fiscale`, `Partita IVA`, `Corso Base`, `Intermedio/Avanzato`, `Si competizioni`, `No competizioni`, `Competizioni`, `Grande scultura`, `Colonna Originale`, `Center piece`, `Minutes figure David Grist`, `Membro Grande S`, `Entrambi i giorni`, `Note`, `CC`, `Scadenza`, `Pagamento`) VALUES (NULL, ";

$query_values = array();

foreach ($post as $data)
{
$query_values[] = "'" . $data . "' ";
}

$comma_separated = implode(',', $query_values);

$query .= $comma_separated . ')';

//echo $query;

$result = mysql_query( mysql_escape_string($query), $db );

if (!$result)
{
die('Invalid query: ' . mysql_error());
}

mysql_close($con);




Ora, la query inserita direttamente in PHPMyAdmin funziona perfettamente (e la query provata a inserire è recuperata da quel "echo $query;"), quando è lo script a farla andare no.
Perchè?

dojolab
13-01-2011, 12:20
Cosi su due occhi darei la colpa al mysql_escape_string che ti fa l'escape dei caratteri già "escappati" (perdona questo italiano-misto-inglese); prova a toglierla e vedere.

PS. i campi numerici non necessitano i ' ', potresti ometterli (se sono effettivamente non stringa).

Albume
13-01-2011, 12:44
Cosi su due occhi darei la colpa al mysql_escape_string che ti fa l'escape dei caratteri già "escappati" (perdona questo italiano-misto-inglese); prova a toglierla e vedere.

PS. i campi numerici non necessitano i ' ', potresti ometterli (se sono effettivamente non stringa).

In effetti era prorio l'escaping... Grazie!!!

dojolab
13-01-2011, 12:51
In effetti era prorio l'escaping... Grazie!!!

de nada ;)