doutan1857 2013-10-05 21:36
浏览 62
已采纳

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

I was using this code to fetch records from a database before:

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

It was working fine. It did its job.

But I'm trying to adapt it to use prepared statements instead.

I have modified the code to this, but I'm not having any luck. Apparently this returns an empty result set:

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

I have also tried returning "$que -> execute(...)" but it wasn't returning a result set. Can I get any help to make this work with prepared statements, please?

  • 写回答

1条回答 默认 最新

  • dqb14659 2013-10-05 21:39
    关注

    Remove the single quotes from the '?' in the prepare call

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码