guardar - php 7 caracteres especiales
¿Cómo insertar caracteres especiales en una base de datos? (9)
¿Alguien puede decirme cómo insertar caracteres especiales en una base de datos MySQL? He hecho un script PHP que pretende insertar algunas palabras en una base de datos, aunque si la palabra contiene a ''entonces no se insertará.
Puedo insertar los caracteres especiales bien cuando uso PHPmyAdmin, pero simplemente no funciona al insertarlos a través de PHP. ¿Podría ser que PHP está cambiando los caracteres especiales en algo más? Si es así, ¿hay alguna manera de hacer que se inserten correctamente?
¿Estás escapando? Pruebe la función mysql_real_escape_string () y manejará los caracteres especiales.
Probablemente " mysql_real_escape_string()
" funcione para ti
Probablemente esté escapando de la cadena SQL, similar a:
SELECT * FROM `table` WHERE `column` = ''Here''s a syntax error!''
Necesitas escaparte de las cotizaciones, de la siguiente manera:
SELECT * FROM `table` WHERE `column` = ''Here/'s a syntax error!''
mysql_real_escape_string()
maneja esto por ti.
Tenga en cuenta que, como otros han señalado, mysql_real_escape_string () resolverá el problema (al igual que las addslashes); sin embargo , siempre debe usar mysql_real_escape_string () por razones de seguridad; considere:
SELECT * FROM valid_users WHERE username=''$user'' AND password=''$password''
¿Qué pasa si el navegador envía
user="admin'' OR (user=''''"
password="'') AND ''''=''"
La consulta se convierte en:
SELECT * FROM valid_users
WHERE username=''admin'' OR (user='''' AND password='''') AND ''''=''''
es decir, los controles de seguridad se omiten por completo.
DO.
Use esto: htmlentities($_POST[''field'']);
Suficiente solo Esto para un personaje especial:
Se usa para CI htmlentities($this->input->post(''control_name''));
Usted los está pegando directamente en una consulta. En su lugar, debe "escapar" de ellos, utilizando una función apropiada: mysql_real_escape_string , mysqli_real_escape_string o PDO :: quote dependiendo de la extensión que esté utilizando.
usa mysql_real_escape_string
Entonces, ¿qué hace mysql_real_escape_string ?
Esta función de biblioteca PHP incluye barras diagonales inversas para los siguientes caracteres: / n, / r, /, / x00, / x1a, ''y ". La parte importante es que las comillas simples y dobles se escapan, porque estos son los caracteres con mayor probabilidad de abrir vulnerabilidades.
Infórmese sobre sql_injection. Puede usar este enlace como inicio
$insert_data = mysql_real_escape_string($input_data);
Suponiendo que tiene los datos almacenados como $input_data
$var = mysql_real_escape_string("data & the base");
$result = mysql_query(''SELECT * FROM php_bugs WHERE php_bugs_category like "%'' .$var.''%"'');