Database [SQL]Errore strano durante l' UPDATE

Stato
Discussione chiusa ad ulteriori risposte.

Mavin

Utente Emerald
21 Gennaio 2011
928
36
269
356
Buonsalve,

Sto scrivendo un mini mini mini CMS per uso personale, e mi sono imbattuto in un errore durante la creazione della pagina per la modifica delle configurazioni. Premetto che ha iniziato a non andare dopo una modifica che adesso non ricordo... ma comunque è un errore strano ò.ò

Ho un for:

PHP:
    for($i = 0; $i !== $post_count; $i++){        
$conn = mysql_connect($data['ip'], $data['id'], $data['pw']) OR DIE(mysql_error());        
mysql_select_db($data['db'], $conn);       
 $current_val = $post_list[$i];       
 $current_desc = $cfg_list[$i];        
$query = mysql_query("UPDATE `settings`                              
SET `valore` = `$current_val`                              
WHERE `config` = `$current_desc`") OR DIE(mysql_error());     
}

$data è un array con i dati del database.

$post_list e $cfg_list sono pure due array.

Adesso io ho una tabella di nome settings e devo modificare la colonna descrizione, quindi come potete vedere dalla query la modifico con il valore passato tramite $_POST corrente (li ho messi tutti su $post_list) e ho fatto in modo con la keyword WHERE che modifica solo il valore del nome della configurazione corrente da modificare.

Con un print_r(); mi sono accertato che tutto sia corretto quindi potete star tranquilli che è giusto.

Con il print giustamente mi è uscito:

print_r($post_list);
PHP:
Array ( [0] => 100 )

print_r($cfg_list);
PHP:
Array ( [0] => massimo )

Quindi come potrete ben notare vorrei che nella tabella settings in una riga con la colonna config che risulta a massimo si modifichi il valore a 100.

Però la query restituisce: Unknown column 'massimo' in 'where clause'

Adesso mi viene da pensare: si sarà rincoglionito o sbaglio io? Perchè mi va a cercare una colonna 'massimo' se ho scritto di andare a cercare il valore 'massimo' nella colonna config?

Ho provato molte query diverse, modificando, aggiungendo e togliendo apici, modificando la sistemazione, documentandomi ma riscontro errori diversi o.o

Avete consigli o un eventuale soluzione? La cosa che mi sembra ancora più strana è che prima andava, ma non ricordo cosa ho modificato.. comunque a me sembra tutto giusto e mi sono assicurato che i valori passati siano esatti.

Saluti
 
Se tutto è corretto potrebbe essere preso come un confronto fra i campi, prova cambiando gli apici e togliendoli dove non è necessario

Codice:
[LEFT][COLOR=#DD0000][FONT=monospace]"UPDATE settings                              
SET valore = '[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$current_val'[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]                              
WHERE config = '[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$current_desc'[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"
[/FONT][/COLOR][COLOR=#007700][FONT=monospace]

[/FONT][/COLOR][/LEFT]
 
Se tutto è corretto potrebbe essere preso come un confronto fra i campi, prova cambiando gli apici e togliendoli dove non è necessario

Codice:
[LEFT][COLOR=#DD0000][FONT=monospace]"UPDATE settings                              
SET valore = '[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$current_val'[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]                              
WHERE config = '[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$current_desc'[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"
[/FONT][/COLOR][/LEFT]



Funziona, anche se avevo già provato così :omfg:, molto probabilmente non andava poichè facevo: config='$current_desc' anche se non penso fosse questo il problema, grazie di tutto :)
 
Stato
Discussione chiusa ad ulteriori risposte.