Usar correctamente LIKE con BindParam en consultas MySQL PDO
Al intentar realizar búsquedas LIKE con bindParam en consultas MySQL PDO, es esencial utilizar la sintaxis correcta para garantizar resultados precisos.
Optimizado Sintaxis
Para hacer coincidir nombres de usuario que comienzan con "a" usando bindParam, la sintaxis correcta es:
$term = "a%";
Por el contrario, el La sintaxis proporcionada en la pregunta original, "$term = "'$term%'", es incorrecta ya que coloca comillas simples internas innecesarias alrededor del valor de $term, lo que daría como resultado la búsqueda de 'a%' en lugar de a%.
Función de bindParam
bindParam es responsable de citar automáticamente datos de cadena cuando se insertan en sentencias SQL. Por lo tanto, agregar comillas simples manualmente no es necesario y puede provocar errores. a resultados incorrectos.
Código revisado
Usando la sintaxis optimizada, el código revisado sería:
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $core = Connect::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3