mysql - caractères carrés espiègleries à la valeur lors de son insertion dans la table

StackOverflow https://stackoverflow.com/questions/2829626

  •  26-09-2019
  •  | 
  •  

Question

J'ai un script php que les valeurs insère dans la table mySQL

INSERT INTO stories (title) VALUES('$_REQUEST[title]);

J'ai vérifié les valeurs de mes variables de demande avant d'entrer dans la table et il est très bien.

Mais quand j'ajoute title = john à la table par exemple,

Je reçois quelque chose comme ceci: title = "[][][][]john" et quand j'extraire la valeur, il est une nouvelle ligne puis john.

J'ai mes colonnes mises à utf-8, j'ai essayé jeu de caractères suédois ainsi.

Note: Je ne comprends pas cette erreur lors de l'insertion des valeurs de la phpMyAdmin commandline

Était-ce utile?

La solution

Vous avez besoin {} autour de toute notation de tableau lorsqu'il est utilisé à l'intérieur "".

$q="INSERT INTO stories(title) VALUES('{$_REQUEST['title']}')";

BTW, il serait préférable, lors de la vérification de votre vars $ _REQUEST pour stocker les versions aseptisées dans de nouvelles variables, et assurez-vous de leur échapper avec real_escape_string()

Autres conseils

SET NAMES <encoding> requête doit être exécutée chaque fois que vous vous connectez à votre base de données.
règle très simple.

<encoding> est votre page HTML encodage en dialecte mysql (utf8 pour la utf-8)

Vous devez vérifier le jeu de caractères de la base de données, le serveur et le client.

Notez que ce n'est pas un jeu de caractères suédois, c'est une collation suédois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top