2013-10-27 5 views
0

im попытаться сделать логин. Итак, мне нужно проверить роль пользователя. Я пишу этот код:PDO Query not return rows

// $userId have a valid id, this is checked 
$userId = $rs[0]['idusuario']; 
$adminRole = "ROLE_ADMIN"; 
$cocinaRole = "ROLE_COCINA"; 
$autorizacion = "SELECT p.nombre FROM perfiles p INNER JOIN usuarios_perfiles up ON (p.idPerfil = up.idPerfil) WHERE up.idUsuario = :Usuario AND p.nombre LIKE :Role)"; 

$isAdmin = $conn->prepare($autorizacion); 
$isAdmin->bindParam(':Usuario', $userId, PDO::PARAM_INT); 
$isAdmin->bindParam(':Role', $adminRole, PDO::PARAM_STR); 
$isAdmin->execute(); 
die(var_dump($isAdmin->fetchAll())); 

vardump шоу:

массив (размер = 0) пусто

Со значениями примеров в PhpMyAdmin, запрос работает отлично, но здесь, в te PHP-код всегда возвращает пустой массив.

Любые идеи?.

+0

Измените код, и результат пуст. – ramiromd

+0

неправильная обработка ошибок. проверьте http://stackoverflow.com/tags/pdo/info –

+0

'$ isAdmin-> bindParam (1, $ userId, PDO :: PARAM_INT);' и '$ isAdmin-> bindParam (2, $ adminRole, PDO :: PARAM_STR); 'не работает. Пустой массив возвращается – ramiromd

ответ

0

У меня есть ошибка в запросе тэ:

$autorizacion = "SELECT...WHERE up.idUsuario = :Usuario AND p.nombre LIKE :Role)"; 

У меня есть скобка в конце концов, что это не должно быть там. Спасибо!

+0

Вы также используете LIKE, где должно использоваться строгое сравнение –