2011-08-31 3 views
0

J'ai une instruction de mise à jour qui ne semble pas fonctionner pour une raison quelconque.Problème de mise à jour MySQL

else if (isset($_POST['save'])) { 
    $query = "UPDATE assignments 
       SET expdate = '$expdate', 
        dispdate = '$dispdate', 
        duedate = '$duedate', 
        name = '$name', 
        cat1 = '$cat1', 
        cat2 = '$cat2', 
        cat3 = '$cat3', 
        schoolid = '$schoolid', 
        classid = '$classid', 
        public = '$public', 
        tags = '$tags', 
        description = '$description', 
        symbol = '$symbol' 
      WHERE id = '$assignmentid' 
       AND teacherid = '$uid'"; 
    echo $query; 
    mysql_query($query); 
} 

J'ai essayé beaucoup mais ne peut pas sembler obtenir à jour la ligne. Je sais que la fonction s'exécute bien car echo $query; sort la requête.

La chaîne spécifique après les variables sont analysées est:

UPDATE assignments 
    SET expdate = '1325401200', 
     dispdate = '1293865200', 
     duedate = '1325401200', 
     name = 'Test 7', 
     cat1 = '138', 
     cat2 = '0', 
     cat3 = '0', 
     schoolid = '1', 
     classid = '33', 
     public = '1', 
     tags = 'New Vista High School,,80302,Patrick,Turmala,Test 7,,,138,No sub-categories,No sub-categories,test7,2012,testNew Vista High School,,80302,Patrick,Turmala,Test 7,,,138,0,0,teste,2012,testes', 
     description = 'Test 7', 
     symbol='teste' 
WHERE id = '21' 
    AND teacherid = '538' 

Est-il une erreur de syntaxe? Que se passe-t-il?

Merci à tous.

+0

Etes-vous sûr que la ligne a un identifiant de 21 et un ID de 538? –

+1

echo 'mysql_error()' après 'mysql_query()'. Si c'est une erreur de syntaxe, cela deviendra évident. –

+0

En outre, vos trois colonnes de date sont-elles des types MySQL DATETIME, ou s'agit-il d'INT acceptant les horodatages UNIX de PHP? –

Répondre

0

essayer d'utiliser

UPDATE assignments set `fieldname`= values where ... 

et l'écho mysql_error pour voir l'exception.

0

La plupart du temps parce qu'il ya Mysql mots réservés dans votre requête comme publique, Vous devez utiliser ` citer que.

Modifier: public n'est pas mysql réservé mot, essayez mysql_error() pour voir l'erreur msg.

+0

' public' n'est pas un mot-clé réservé: http://dev.mysql.com/doc/refman/5.0/en /reserved-words.html –

0

Pouvez-vous me faire part de l'erreur/exception que vous obtenez. Je pensais qu'il y a un problème de longueur de la colonne. La longueur des étiquettes de colonne est trop courte pour contenir la valeur donnée.