comment append ‘comme des caractères spéciaux dans la colonne de type de données mysql varchar?

J’essaie d’insérer une chaîne en tant que “monde de bébé” dans la colonne de type varchar via une requête, mais me montre une erreur. Y a-t-il autre chose que j’ai besoin de poser à la requête pour qu’elle accepte ce symbole?

mettez une barre oblique inverse devant, comme ceci:

"Baby\'s world" 

Vous pouvez les trouver et les remplacer dans votre chaîne en utilisant les éléments suivants:

 str.Replace('\'', '\\\'') 

Je ne suis pas sûr à 100% de cette dernière partie, mais vous devez “échapper” à “et” en ajoutant un \ devant celle-ci. Donc, cela semblerait bien (je ne peux pas tester car je ne suis pas un programmeur C #.

Puisque vous posez des questions sur Visual Studio (.NET), vous devez utiliser une requête paramétrée. Ne pas utiliser la concaténation lors de la construction d’une requête

 private void PrepareExample() { ssortingng s = Console.ReadLine(); MySqlCommand cmd = new MySqlCommand("INSERT INTO movie(title) VALUES (?title)", myConnection); cmd.Parameters.AddWithValue( "?title", "baby's world" ); cmd.Prepare(); cmd.ExecuteNonQuery(); } 

Ou

 private void PrepareExample() { MySqlCommand cmd = new MySqlCommand("INSERT INTO movie(title) VALUES (?title)", myConnection); // try to input: baby's world. or try: baby"s world. everything are ok :-) cmd.Parameters.AddWithValue( "?title", Console.ReadLine() ); cmd.Prepare(); cmd.ExecuteNonQuery(); } 

Bien que ce ne soit pas exactement une concaténation, n’utilisez pas ceci:

 qry = ssortingng.Format("INSERT INTO movie(title) VALUES("{0}", Console.ReadLine()); 

Toutefois, si vous avez réellement besoin d’exécuter SQL de cette manière, remplacez le guillemet simple par une barre oblique inversée.

 qry = ssortingng.Format("INSERT INTO movie(title) VALUES("{0}", Console.ReadLine().Replace("'", "\'"); 

Mais envisagez d’utiliser une requête paramétrée au lieu de la concaténation ou de ssortingng.Format, car la requête paramétrée prend automatiquement en charge ces nuances de séparateur.

http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlcommand.html

Il suffit d’utiliser mysql_real_escape_ssortingng() . Il n’y a pas besoin de faire autre chose.

Par exemple:

 mysql_real_escape_ssortingng($user), mysql_real_escape_ssortingng($password)); 

INSERT INTO table (field) VALUES ('baby's world') échouera car la chaîne est tronquée à INSERT INTO table (field) VALUES ('baby' et le rest est considéré comme un code non valide.

Il y a deux façons d’arrêter cela, la seconde étant recommandée pour coder les bonnes pratiques:

INSERT INTO table (field) VALUES ("baby's world")

INSERT INTO table (field) VAUES ('baby\'s world')