À l'aide de virgules dans un CONCAT php mysql mise à jour
Je dois effectuer une requête similaire à:
<?php
//....connect to database
$old = "a,b,c,d";
$new = "e,f,g,h";
$insert = "UPDATE TABLE SET FIELD = CONCAT(" . $old . ", " . $new . ") WHERE something = 'something';
mysql_query($insert);
?>
Donc, fondamentalement, je veux ajouter la base de données en cours de saisie avec un la "nouvelle" chaîne de caractères qui contient des virgules. Mais depuis la CONCAT fonctions, utilise des virgules, je vais avoir des ennuis..
Quelqu'un a des conseils pour accomplir cette?
Merci à tous!
Quel genre d'ennuis?
OriginalL'auteur d-_-b | 2012-03-31
Vous devez vous connecter pour publier un commentaire.
Modifier cette ligne
à ce
Edit:
Et si vous voulez une virgule entre le
$old
et$new
cordes de la concaténation, l'utilisation CONCAT_WS (http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws)Comme suit:
vous avez manqué la citation nouveau
Correct. Depuis que vous êtes à l'initialisation de votre
$insert
variable avec des guillemets, il va effectuer l'expansion des variables sur toutes les variables telles que$old
et$new
et les guillemets simples sera interprétée littéralement.Je sais haha...j'ai demandé si, dans d'autres exemples, sans virgules dans mes variables, il est inutile de le briser, en utilisant $variable = "fonction(" . $quelque chose . ")"; ou comme Kjones dit il suffit de faire: $variable = "fonction de dollars (quelque chose)", Même si elle dépend probablement de ce que la fonction que j'utilise...
Grâce kjones! vous êtes très utile!
OriginalL'auteur kjones
Utiliser la fonction mysql
CONCAT_WS()
-> Concaténer Avec SéparateurOriginalL'auteur Anand
chaînes dans les requêtes SQL doit être délimité par des guillemets.
il n'y a aucun point de rupture d'une chaîne PHP, en ajoutant seulement inutile bruit.
Aussi, j'ai l'odeur d'un dossier pour la normalisation de base de données
OriginalL'auteur Your Common Sense
Vous avez besoin d'ajouter des guillemets autour des variables de sorte que vous obtenez des chaînes, comme ceci (j'ai aussi ajouté une fuite en double quote):
OriginalL'auteur Waynn Lue