UPDATE: differenze tra 'nome_campo' e `nome_campo`

Avevo scritto la seguente query:

$query = "UPDATE immagini SET nome = '$nome', desc = '$desc' WHERE id='$id'";

ma continuavo ad avere errori

se facevo:

$query = "UPDATE immagini SET nome = '$nome' WHERE id='$id'";

tutto funzionava bene (settando solo il nome).

Per risolvere ho dovuto aggiungere ``:

$query = "UPDATE immagini SET nome = '$nome', `desc` = '$desc' WHERE id='$id'";

Perché?

inviato 10 anni fa
arjuna
X 0 X

Perché [tt]desc[/tt] è una parola riservata di MySQL che viene utilizzata nella clausola [tt]ORDER BY[/tt] per indicare un ordinamento "discendente"

ad esempio le ultime news:

[tt]SELECT * FROM tabella_news ORDER DY data_news DESC[/tt]

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Gisto, che stupido...

ma a questo punto volevo sapere come si comportava il carattere ` (ALT+96) rispetto alla portabilità.

Ci sono rischi ad usarlo?

risposto 10 anni fa
arjuna
X 0 X

In che senso? Cosa temi possa accadere?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Lavorando su linux e poi su pc mi è capitato che le è,é,à, etc... mi erano diventati caratteri diversi.

Essendo che ` non l'ho mai usato non so come si comporta su macchine diverse.

(so che non sono stato molto chiaro ma mi mancano le conoscenze per esprimere meglio la mia perplessità)

risposto 10 anni fa
arjuna
X 0 X

Ti riferisci ai problemi con i set di caratteri. Pui stare tranquillo, il backtick, così si chiama il carattere `, non dà problemi ed anzi viene utilizzato spesso dai vari programmi di gestione MySQL per "proteggere" i nomi dei campi e delle tabelle di MySQL in modo che il server non li confonda con delle parole riservate.

 :bye:

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