mysql - caracteres quadrados engraçados adicionados ao valor ao inseri-lo na tabela

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

  •  26-09-2019
  •  | 
  •  

Pergunta

Tenho um script php que insere valores na tabela mySQL

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

Verifiquei os valores das minhas variáveis ​​de solicitação antes de entrar na tabela e está tudo bem.

Mas quando adiciono title=john à tabela, por exemplo,

Eu recebo algo assim:title = "[][][][]john"e quando eu extraio o valor, é uma nova linha então john.

Tenho minhas colunas definidas como utf-8, tentei também o conjunto de caracteres suecos.

Observação:Não recebo este erro ao inserir valores da linha de comando do phpMyAdmin

Foi útil?

Solução

Você precisa {} em torno de qualquer notação de array quando usado dentro "".

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

Aliás, seria melhor, ao verificar seus vars $_REQUEST, armazenar as versões higienizadas em novas variáveis ​​e ter certeza de escapá-las com real_escape_string()

Outras dicas

SET NAMES <encoding> A consulta deve ser executada sempre que você se conectar ao seu banco de dados.
regra muito simples.

onde <encoding> é a codificação da sua página HTML no dialeto mysql (utf8 para o utf-8)

Você precisa verificar o conjunto de caracteres do banco de dados, do servidor e do cliente.

Observe que não é um conjunto de caracteres sueco, é um agrupamento sueco.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top