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