php - 将可变数量的参数传递到 PDO 语句并返回 JSON 对象

标签 php mysql json pdo

这个函数接受一个整数数组

  $this->grades

这个数组的大小取决于用户输入的内容。 我只用一个数字就可以让它完美地工作,但是当我尝试多个数字时,我遇到了问题。在编码之前我是否需要以某种方式将响应连接在一起?还是有更有效的方式来运行它?

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

最佳答案

只需使用一个数组来存储结果并对数组进行编码

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

关于php - 将可变数量的参数传递到 PDO 语句并返回 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14026313/

相关文章:

php - laravel 中哪种左连接更好

mysql - 如何在 MYSQL - Linux 中更改函数定义器?

java - Jackson - 自定义反序列化器不会读取 JSON 中的所有字段

PHP:json_encode() 不显示多维数组的任何内容

php - Mysql数据库只进入一次

javascript - 如何将变量从一个页面传递到另一页面?

javascript - 使用 php mysqli 插入 json 数组时出错

php自定义日程日历无法在日期单元格中显示客户姓名

php - 用于在网站上打印交叉引用表的 SQL 查询

javascript - 根据 Typescript 中的值对所有 JSON 键进行分组