Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Escapar aspas simples na inserção PHP/MySQL não está funcionando


Inserir string com aspas simples(' ) ou aspas duplas(" ) no mysql

Basta usar addslashes(); em Inserção e stripslashes(); para buscar dados.
$str = "Hello Friend's.. Hows you all"s.";
// Outputs: Hello Friend\'s..Hows you all\"s.
echo addslashes($str);

stripslashes — String sem aspas entre aspas com addslashes() . Retorna uma string com as barras invertidas removidas. (\' torna-se ' e assim por diante.) Barras invertidas duplas (\\ ) são transformados em uma única barra invertida (\ ).
$str = "Hello Friend\'s.. Hows you all"s."; // Outputs: Hello Friend's.. Hows you all"s.
echo stripslashes($str);

Agora chegamos ao ponto. Se inserirmos uma string no banco de dados com aspas simples ou duplas assim:
$str = “Hello Friend's.. Hows you all"s.”;
$query = “INSERT INTO tbl (description) VALUES (‘$str’)”;

Isso ocorrerá erro, mas se usarmos addslashes($str) funcionar como abaixo e, em seguida, inserir no banco de dados, nenhum erro ocorrerá.
$str = “Hello Friend's.. Hows you all"s.”;
$desc_str = addslashes($str);
$query = “INSERT INTO tbl (description) VALUES (‘$desc_str’)”;

da mesma forma podemos usar stripslashes($str) para imprimir esse valor de campo da tabela assim:
echo stripslashes($str);