2012-06-17 22 views
13

He leído varios ejemplos de cómo estas consultas deben ser escritos, pero estoy luchando para conseguir este específica gusta correr cuando se utiliza bindParamUsando LIKE en bindParam para una consulta de MySQL DOP

¿Sería ésta la forma correcta para que coincida con los nombres de usuario que comienzan con?

$term = "a"; 
$term = "'$term%'"; 

$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(); 

Respuesta

21

No, usted no necesita las comillas simples interiores por lo que sólo $term = "$term%";

La declaración que se está ejecutando ahora sería tratar de igualar 'a%' en lugar de a%

bindParam se asegurará de que todos los datos de cadena se citan correctamente automáticamente cuando se los da a la declaración de SQL.

+0

Aquí hay un código de muestra: https://gist.github.com/arsho/a203e7bc156ea566587361a76038f020 – arsho

Cuestiones relacionadas