访问PHP数组对象中的项

时间:2018-06-08 17:22:14

标签: php sql-server moodle

我有一个从存储在对象$ result中的SQL Server数据库中检索到的记录数组。我想访问数组对象中的每个项目并将其打印到屏幕上。我怎样才能做到这一点?我的尝试低于

$result = $DB->get_records_sql("SELECT  rawname, ID FROM mdl_tag where tagType = 'institution'"); 
$result = array();
        foreach ($result as $ $value) {
        echo $value;
        );
    }

1 个答案:

答案 0 :(得分:1)

这是正确的代码:

// Get results from table 'tag', where 'tagtype' matches 'institution', with no sorting and returning fields 'id' and 'rawname'.
$results = $DB->get_records('tag', ['tagtype' => 'institution'], '', 'id, rawname');
foreach ($results as $value) {
    echo $value->rawname;
}

所以,有很多问题:

  1. 使用get_records,除非您确实需要使用get_records_sql。
  2. 如果你需要使用get_records_sql,那么该表被称为{tag}而不是mdl_tag,否则你会在任何使用&#39以外的前缀的服务器上遇到问题; MDL _' (例如,当运行phpunit或behat测试时)。
  3. 写$ result = array();在循环结果之前,将立即丢弃数据库中的详细信息并将其替换为空数组
  4. get_records(或get_records_sql)的结果是一个包含对象的数组,每个对象都包含所请求字段的值,因此您需要访问单个值,而不是尝试回显整个对象
  5. Moodle中的所有数据库字段都是小写的,因此' tagtype'不是' tagType',' id'不是' ID'。