doutang8098 2012-12-24 22:57
浏览 108
已采纳

将可变数量的参数传递给PDO语句并返回JSON obj

This function takes an array of integers

  $this->grades

this array varies in size depending on what the user inputs. I can get it to work perfectly with only one number, but when I try more than one I run into the problem. Do I need to somehow concatenate the responses together before encoding them? Or is there a more efficient way to run this?

 private function retrieve_standards_one(){
    $dbh = $this->connect();
    for($x = 0; $x < (count($this->grades)); $x++){
    $stmt = $dbh->prepare("SELECT code, standard_one_id 
                           FROM standard_one 
                           WHERE grade_id = :grade_id 
                           ORDER BY standard_one_id");
    $stmt->bindParam(':grade_id', $this->grades[$x], PDO::PARAM_STR);
    $stmt->execute();
    $stnd = $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
    $json = json_encode($stnd);
    return $json;
}
  • 写回答

3条回答 默认 最新

  • dongweihuan8610 2012-12-24 23:00
    关注

    Just use an array to store the results and encode the array

     private function retrieve_standards_one(){
        $dbh = $this->connect();
        $data = array();
        for($x = 0; $x < (count($this->grades)); $x++){
        $stmt = $dbh->prepare("SELECT code, standard_one_id 
                               FROM standard_one 
                               WHERE grade_id = :grade_id 
                               ORDER BY standard_one_id");
        $stmt->bindParam(':grade_id', $this->grades[$x], PDO::PARAM_STR);
        $stmt->execute();
        $data[] = $stmt->fetchAll(PDO::FETCH_ASSOC);
        }
        $json = json_encode($data);
        return $json;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址