2013-10-27 198 views
0

即时尝试做一个登录。所以,我需要检查角色用户。我写这样的代码:PDO查询不返回行

// $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

我在TE查询时出现错误:

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

我有一个括号年底,它不应该存在。 谢谢!

+0

您也正在使用LIKE,必须使用严格的比较 –