Cita:
Iniciado por agui90
Gracias por responderme, coloco parte del codigo que estoy utilizando:
Código PHP:
$buscar=rawurlencode("'%".$tag."%'");
$sWhere_final=" WHERE identificarmaterial.tag LIKE $buscar";
$sQuery = "SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
FROM $sTable $sWhere_final $sWhere $sOrder $sLimit";
$rResult = $this->_db->query($sQuery) or die($this->_db->error());
Me da error, en esta linea: $rResult = $this->_db->query($sQuery) or die($this->_db->error()); pero la sentencia esta bien porque la ejecuto en el phpmyadmin y funciona pero en php es donde da el error.
primero, en tu base de datos dudo que ejecutes la consulta tal cual, por que mira , que
la funcion rawurlencode , te convierte las comillas simples en ' en %27
por lo que en tu consulta cuando mandas por ejemplo
$buscar=rawurlencode("'%11-A1166%'");
su resultado sera
%27%2511-A1166%25%27
como vees se pierde tu simple comilla
la funcion
rawurlencode solo esta pensada para asignarles un valor a todo texto,cadena o string, que sea entendible para una URL y no es recomendable para ESCAPAR variables de SQL
o en su lugar
Código PHP:
Ver original//cambialo por
$buscar="'%$buscar%'";
SQL y PHP puede manejar a veces sintaxys parecidas pero no confundas, hay cosas que son interpretadas diferentemente por que tiene un lenguaje propio.
tambien te sugiero que pienses sobre los problemas de seguridad, que pueden causar las SQL INJECTION.