PDO声明不返回结果

时间:2014-04-14 11:04:35

标签: php mysql sql pdo

$query = $db->prepare("SELECT * FROM coupons WHERE deleted = ? LIMIT ?, ?");
$query->bindValue("1", 0);
$query->bindValue("2", 2);
$query->bindValue("3", 5);
    try{
        $query->execute();
        $result = $query->fetchAll();
        return $result;
    }catch(PDOException $e){
        die($e->getMessage());
}

不幸的是,这会返回一个没有行的结果(但是一个空结果甚至没有错误),当我通过phpmyadmin运行这个sql查询时,它会获取多行。 任何建议都会有所帮助。我无法解决这个问题。

3 个答案:

答案 0 :(得分:0)

对这个问题的第一个评论对我很有帮助:Here

解决了我的问题。以上提到的上述建议以前曾尝试过,但没有用。

答案 1 :(得分:-1)

如果您使用问号作为活页夹,

bindValue需要一个整数 而不是像你提供的字符串:

$query = $db->prepare("SELECT * FROM coupons WHERE deleted = ? LIMIT ?, ?");
$query->bindValue(1, 0);
$query->bindValue(2, 2);
$query->bindValue(2, 5);
    try{
        $query->execute();
        $result = $query->fetchAll();
        return $result;
    }catch(PDOException $e){
        die($e->getMessage());
}

或只是这样做:

$query = $db->prepare("SELECT * FROM coupons WHERE deleted = ? LIMIT ?, ?");
$binds = array(0,2,5);
    try{
        $query->execute($binds);
        $result = $query->fetchAll();
        return $result;
    }catch(PDOException $e){
        die($e->getMessage());
}

答案 2 :(得分:-1)

尝试像这样使用

<?php
$query = $db->prepare("SELECT * FROM coupons WHERE deleted = :deleted LIMIT :limit, :offset");
$query->bindValue(":deleted", 0);
$query->bindValue(":limit", 2);
$query->bindValue(":offset", 5);
    try{
        $query->execute();
        $result = $query->fetchAll();
        return $result;
    }catch(PDOException $e){
        die($e->getMessage());
}
?>