2013-04-27 51 views
5

在我的代碼我嘗試從我的分貝與PDO和綁定PARAMS獲得的數據,但我一直在得到空數組,這是我的代碼:PDO使用fetchall()返回一個空數組

try{ 
    $pdo =new PDO('mysql:host=localhost;dbname=***', '***','***'); 
    $pdo->setAttribute(pdo::ATTR_ERRMODE, 
        pdo:: ERRMODE_EXCEPTION); 
    $pdo->query('set names "utf8"'); 
} 
catch (PDOException $e) { 
    die('error connectin database'); 
} 
$table = 'products'; 
$column = 'id'; 
$niddle = '70'; 
$sql = "SELECT * FROM `{$table}` WHERE "; 
$sql .= ":column LIKE :niddle"; 
$pre = $pdo->prepare($sql); 
$pre->bindParam(':column', $column ,PDO::PARAM_STR); 
$pre->bindParam(':niddle', $niddle, PDO::PARAM_STR); 
$result = $pre->setFetchMode(PDO::FETCH_ASSOC); 
$pre->execute(); 
print_r($pre->fetchAll()); 

沒有拋出,可能是什麼問題?

+2

重複的[我可以使用PDO準備語句綁定標識符(表或字段名稱)或語法關鍵字?](http://stackoverflow.com/questions/15990857/reference-frequently-asked-questions -about-pdo#15991422) – 2013-04-27 13:01:33

+0

我猜''列'會被像''id「'這樣的引號括起來,這是不必要的。你確定'$ needle'返回String嗎? – 2013-04-27 14:30:33

回答

1

您不應將列名稱綁定爲準備的語句參數字符串,因爲它會引用列名稱。像使用表名一樣使用它 - 在將其列入白名單之後。