【问题标题】:PDO fetchAll() returns an empty arrayPDO fetchAll() 返回一个空数组
【发布时间】:2013-04-21 13:41:08
【问题描述】:

在我的代码中,我尝试使用 PDO 和绑定参数从我的数据库中获取数据,但我不断得到空数组,这是我的代码:

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

没有抛出异常,可能是什么问题?

【问题讨论】:

标签: php mysql pdo bind


【解决方案1】:

您不应将列名绑定为准备好的语句参数字符串,因为它将引用列名。就像你对表名所做的那样,只需使用它——在将其列入白名单之后。

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 2014-05-01
    • 2016-12-11
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多