我之前使用此代码从数据库中获取记录:

function shapp_get_sections_with_company_id($db, $id)
{
    try
    {
        $que = $db -> query("SELECT * FROM company_sections WHERE company_id = '$id'");
        $result = $que -> fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }catch(PDOException $ex)
    {
        echo $ex -> getMessage();
    }
}


工作正常。它做了它的工作。

但是我正在尝试使其适应于准备好的语句。

我已经对此进行了修改,但是我没有任何运气。显然,这将返回一个空结果集:

function shapp_get_sections_with_company_id($db, $id)
{
    try
    {
        $que = $db -> prepare("SELECT * FROM company_sections WHERE company_id = '?'");
        $que -> execute(array($id));
        $result = $que -> fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }catch(PDOException $ex)
    {
        echo $ex -> getMessage();
    }
}


我也尝试过返回“ $ que-> execute(...)”,但是它没有返回结果集。
请问我可以通过准备好的语句获得帮助吗?

最佳答案

从“?”中删除单引号在准备电话中

$que = $db -> prepare("SELECT * FROM company_sections WHERE company_id = ?");

关于php - 使用PDO的预备语句获取数据库记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19202990/

10-14 03:42