2013-10-27 195 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,必須使用嚴格的比較 –