2012-03-07 9 views
0

juste avoir quelques problèmes avec une mise à jour SQL en PHP. Ci-dessous est un extrait de la fonction:MYSQL Erreur: 1054 - Inconnu Colonne

$captain = $this->getUserName(); 
    $member = $textParts[1]; 
    $memberNo = 'member1'; 

    $sqlUpdate = 'UPDATE ajax_chat_draft_teams SET '.$memberNo.'='.$member.' WHERE captain='.$captain.''; 

    $result = $this->db->sqlQuery($sqlUpdate); 

Lorsque la requête est atteint, il jette l'erreur suivante:

Query: UPDATE ajax_chat_draft_teams SET member1=user WHERE captain=Oolius 
Error-Report: Unknown column 'Oolius' in 'where clause' 
Error-Code: 1054 error occured! 

La table ajax_chat_draft_teams a 5 champs: capitaine, member1, member2, membre3, member4 (Remarque: Il existe un enregistrement dans la table où le capitaine est Oolius et tous les membres sont NULL). Je n'arrive pas à voir ce qui ne va pas avec mon instruction SQL. Merci pour votre temps.

+0

Jetez des citations autour d'Oolius, ça me dérange. –

Répondre

1

Essayez ceci:

$sqlUpdate = 'UPDATE ajax_chat_draft_teams SET '.$memberNo.' = "'.$member.'" WHERE captain = "'.$captain.'"'; 
+0

Merci tas a travaillé un charme. Cela me causait beaucoup de conflits. – user1253886

0

Vous devez mettre Oolius entre guillemets autres MySQL pense qu'il s'agit d'un nom de colonne.

1

Les littéraux de chaîne doivent être entourés de guillemets simples. La requête devrait ressembler à ceci:

UPDATE ajax_chat_draft_teams SET member1='user' WHERE captain = 'Oolius'

Aussi, pensez à utiliser PDO et lier des variables.

+0

+1 pour la reliure, SQL comme ceci mendie pour une attaque par injection – muffinista

0

Utilisez cette

$sqlUpdate = 'UPDATE ajax_chat_draft_teams SET '.$memberNo.'="'.$member.'" WHERE captain="'.$captain.'"';

J'espère que cela vous aidera.

Questions connexes