2010-07-01 16 views
0

L'instruction update dans l'exemple ne fonctionne pas tout le temps même si la clause where est vraie. La base de données est MYSQL innodb. Cela causerait-il une sorte de verrouillage? Cela est tellement bizarre.Pourquoi mon instruction SQL UPDATE ne fonctionne-t-elle pas en boucle?

<?php 
    $query = 'SELECT id FROM TABLE1'; 
    $result = db_query($query); 
    while($row = db_fetch_array($result)) {  
     //do some processing 
     db_query('UPDATE {TABLE1} SET updated = "1" WHERE id = "%s"',$row['id']); 
    } 
?> 
+0

Qu'est-ce qui ne fonctionne pas? Avez-vous un message d'erreur? –

+0

aucune erreur ... seulement 10-20% des lignes sont mises à jour à chaque fois. – jini

Répondre

3

La syntaxe est erronée - MySQL ne pas utiliser des accolades:

db_query('UPDATE `TABLE1` SET updated = "1" WHERE id = "%s"',$row['id']); 
+0

J'utilise Drupal qui utilise les accolades – jini