使用PHP中的函数获取数组值

使用PHP中的函数获取数组值,php,Php,创建函数以从查询中获取数组值的正确方法是什么?我收到“未定义索引:页面标题”错误。 但是,我可以在没有函数的情况下获得值,比如:echo$row->page\u title; 或echo$query[0]->title function get_page($id) { $db = new DB(); $query = $db->get_rows("SELECT * FROM pages WHERE id = :id ", array('id' => $_GET['

创建函数以从查询中获取数组值的正确方法是什么?我收到“未定义索引:页面标题”错误。 但是,我可以在没有函数的情况下获得值,比如:echo$row->page\u title; 或echo$query[0]->title

function get_page($id) {

    $db = new DB();

    $query = $db->get_rows("SELECT * FROM pages WHERE id = :id ", array('id' => $_GET['id']) );

    foreach ($query as $row) {
        $page_id = $row->id;
        $page_title = $row->title;
    }

    return $query;

}

$page = get_page(1);

echo $page['page_title'];
这是我的数据库类:

function get_rows($query, $values=array(), $fetchType = FETCH_OBJ)
{
    $sth = $this->dbh->prepare($query);
    if(is_array($values) && (sizeof($values) > 0))
    {
        foreach($values as $key=>$val)
        {
            $key = is_numeric($key) ? ($key + 1) : $key;
            $sth->bindValue($key,$val); 
        }
    }
    if($sth->execute())
        return $sth->fetchAll($fetchType);
}

为了使函数可重用,我将按照以下方式重写它

function get_page($id, $col) {
  $db = new DB();

  $query = $db->prepare('SELECT * FROM pages WHERE id = :id');
  $query->execute(array(':id' => $id));
  $results = $query->fetch(PDO::FETCH_NUM);

  return $results[0][$col]; 
}

$page = get_page(1, 'page_title');
echo $page;
我跳过了foreach,因为您说过所有id都是唯一的,所以您应该只有一个结果

另外,添加一些错误检查,以确保从查询中得到预期的结果,并确保查询不是空的,这可能不是一个坏主意


编辑:抱歉,如果语法有点不正确,请不要快速测试代码。

您在db connection mysql、mysqli或PDO中使用的是什么,表中的ID是唯一的吗?我使用的是PDO数据库类,然后您需要先准备查询,然后执行,然后使用fetchArray或fetchAllAnd,并且您确定
get_rows()
正在返回一个对象数组?
返回$results[0][$col]而不是
返回$results[0]['.$col.]谢谢@MueR,我修好了。