problema con apici

ciao a tutti,

ho importato in un db mysql le province e i comuni d'italia, ma ho un problema: quando vado a selezionare l'Aquila automaticamente mi dovrebbe caricare tutti i comuni dell'Aquila, ma ricevo il seguente errore:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Aquila'' at line 1

Come posso evitare questo problema?

La mia versione di Mysql è la 4.1 e quella di Php è la 4.4.4

Grazie

 :bye:

inviato 9 anni fa
paoloroma77
X 0 X

Grazie :)

mi lancio subito nella lettura

 :bye:

risposto 9 anni fa
paoloroma77
X 0 X

addslashes dovrebbe essere la soluzione.

<?php
if(!get_magic_quotes_gpc()){
   $provincia = addslashes($_POST['provincia']);
}else{
   $provincia = $_POST['provincia'];
}
?>

questo sinceramente andrebbe fatto su tutti i dati in ingresso ;)

questa soluzione può salvarti da sql injection e errori rognosi di questo tipo

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
modificato 9 anni fa
X 0 X

Grazie della risposta trashofmasters, ma così non riesco a risolvere.

Spiego meglio:

Prima di modificare il codice con 'addslashes' come mi hai suggerito tu avevo il seguente errore:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Aosta'' at line 1

utilizzando la query:

$query2 ="SELECT** DISTINCT regione, provincia FROM province WHERE regione='".$regione."'";

con il valore di $regione = Valle d'Aosta

Inserendo l'addslashes invece la SELECT mi restituisce un recorset vuoto perchè il valore di $regione è Valle d\'Aosta diverso da quello che ho inserito nel db (Valle d'Aosta).

C'è una soluzione? eventualmente anche cambiando i dati nel db?

** non so perchè il SELECT scritto normale mi dava problemi per postare...ho aggiunto i 2 ** per mandare il msg...nel codice originale è ok

Grazie

 :bye:

risposto 9 anni fa
paoloroma77
X 0 X

[ot]gianni sta mod è rognosa :D non è possibile fare l'escaping delle query su un forum di supporto per php e mysql :death: [/ot]

non devi cambiare i valori nel database.

mysql fa l'escaping dei caratteri di escape quindi \ non lo vede se è messo davanti ad un apice o virgoletta ( \' e \" dovrebbero essere equivalenti a ' e " )

aspettiamo Gianni per maggiori chiarimenti

PS: evita di usare il jolly per le select perchè in questo modo estrai dati che non servono ( ad esempio se ti serve solo il nome della provincia, così estrai anche l'id et cetera...è buona norma imparare a non usarlo :D )

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
modificato 9 anni fa
X 0 X

i caratteri ** li ho inseriti per far andare il post...

Il termine SELECT mi dava problemi...e non mi faceva postare

Aspetto Gianni :)

Grazie trashofmasters  :)

risposto 9 anni fa
paoloroma77
X 0 X

Premetto che sto facendo di tutto per risolvere il problema nell'invio dei messaggi sul forum...

Confermo il discorso sugli slash di trash.  :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

problema risolto  :D

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