Non so cosa tu intenda di preciso per atomicità, ma da quello che scrivi, a te serve una sorta di gestione delle code di accesso al DB.
Cioè che fino a quando una query non è committata, non esiste nel DB, ma solo in uno dei processi monitor dello stesso.
Sbaglio?
Per fare questo, suppongo che dovresti usare il motore transazionale di MySQL, e quindi InnoDB.
Il che significa poi fare dei lock alle tabelle eccetera.
Leggendo la tua query, però, mi viene da dire che forse l'errore sta nella gestione del tipo di dato.
Se la colonna main_check è di tipo numerico, allora non devi usare gli apici per inserirvi dati.
Non offenderti poi se ti dico, che questo tipo di soluzione di caching mi sembra un po' troppo artigianale: non vai ad controlloare il caching nel browser dell'utente, ma vai a salvare un file in una cartella del server.Codice PHP:$update = mysql_query("UPDATE forum SET main_check = 1 WHERE main_check = 0 ",$mydb);
Secondo me sbagli la logica del caching stesso, per cui credo di potere dire che butti all'aria le possibilità che ti da' l'accoppiata PHP/DB.
![]()

Rispondi quotando