2010-09-25 11 views
0

J'ai une table MySQL (membres) avec six colonnes (FirstName, LastName, E-mail, nom d'utilisateur, mot de passe, clés)INSERT INTO MySQL et PHP

je dois insérer une chaîne dans la Key colonne pour la nom d'utilisateuradmin

Comment dois-je prendre?

+1

Est-ce votre schéma de base de données mis en place pour accepter des chaînes dans la colonne de clé? –

Répondre

1

Supposons la chaîne que vous souhaitez insérer est la chaîne littérale 'MyString'. Vous pouvez mettre à jour la table comme ceci:

UPDATE `members` SET `Key` = 'MyString' WHERE `username` = 'admin' 

Quelques choses à noter:

  • J'ai joint les noms de colonnes, comme Key, en identifiant cite (accents graves). C'est principalement parce que je sais que MySQL peut traiter le mot 'clé' comme un mot réservé SQL, ce qui pourrait l'empêcher d'analyser ma requête UPDATE.
  • Ceci suppose que la colonne Key a un type de données string, tel que TEXT ou CHAR(20). Si ce n'est pas le cas (par exemple s'il s'agit d'un INT), cela n'a aucun sens d'essayer de le mettre à jour pour contenir une chaîne. Je suppose également que la longueur de la colonne, si elle est CHAR ou VARCHAR, est suffisamment longue pour contenir cette chaîne (c'est-à-dire d'une longueur d'au moins 8). Si la colonne est trop courte pour contenir la chaîne que j'essaie de mettre, alors MySQL tronquera la chaîne ou émettra un message d'erreur, selon le mode SQL.

Sinon, s'il n'y a pas une ligne dans la table pour laquelle username est « admin », mais vous voulez insérer un, vous utilisez

INSERT INTO `members` (`username`, `key`) VALUES ('admin', 'MyString') 

Cette déclaration est soumise aux mêmes dispositions comme ci-dessus. De plus, toutes les colonnes NOT NULL devront également avoir des valeurs spécifiées (à l'exception possible d'un champ d'entier auto-incrémenté).

+0

J'ai utilisé ce code, mais il ne fait rien. Il n'affiche même pas d'erreur. –

+0

Veuillez publier la sortie de 'SHOW CREATE TABLE members'. – Hammerite

+0

Je suis désolé. J'ai finalement compris. Merci de votre aide! Je poste un autre maintenant. J'ai du code PHP qui ne semble pas fonctionner. Voulez-vous essayer et aider? :-) Merci encore. –

1
UPDATE members 
    SET `Key`='<SOMETHING>' 
WHERE username='admin' 
LIMIT 1 

Vous devriez avoir une clé primaire, comme member_id (généralement un INT avec auto_increment). Ensuite, vous pouvez faire:

UPDATE members 
    SET `Key`='<SOMETHING>' 
WHERE member_id=<X> 
+0

+50000 pour avoir toujours une clé primaire auto_incrment numérique. Si vous avez besoin d'une autre fonction de colonne d'une manière similaire à une clé primaire, utilisez un index unique. vous pouvez aussi ne pas utiliser le nom de la colonne 'key' car il est utilisé par mysql en tant que mot-clé. utilisez 'member_key' ou quelque chose comme ça à la place. – prodigitalson