使用PDO的准备语句获取数据库记录

时间:2013-10-05 21:36:42

标签: php mysql pdo

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

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(...)”,但它没有返回结果集。 我可以获得任何帮助,使用预先准备好的陈述来完成这项工作吗?

1 个答案:

答案 0 :(得分:1)

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

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