【发布时间】:2014-10-24 17:54:10
【问题描述】:
在我的 PDO 查询中,当没有返回任何结果时,PDO::FETCH_OBJ 没有检索到任何对象(get_class 因非对象而失败,正如预期的那样)。
$prepared_statement = $this->_adapter->prepare($sql);
$prepared_statement->bindValue(':student_id', $_student_search, PDO::PARAM_INT);
$prepared_statement->execute();
$results = $prepared_statement->fetch(PDO::FETCH_OBJ);
if (empty($results))
{
return echo "EMPTY"; //what do I do?
}
return $results;
由于我的模板是基于对象返回值的,我该怎么办?
//from my code somewhere
//$student is empty
$student = $student_model->findByStudentID($studentID);
<input type="button" value="<?PHP echo $student->lastname; ?>" />
<input type="button" value="<?PHP echo $student->firstname; ?>" />
etc....
当对象为空时,我会收到一个非对象错误,这是有道理的,因为没有返回 $student 对象
$result 为空怎么办? (如果重要,我将 PDO 与 MySQL 一起使用。)
编辑:
我最终这样做了:
if (empty($results))
{
$object = new stdClass();
$realColumnNames = parent::getColumnNames($this->_adapter, 'students');
foreach($realColumnNames as $column)
{
$object->{$column}="";
}
return $object;
}
这里是父类:
protected function getColumnNames($adapter, $myTable)
{
$this->myAdapter = $adapter;
$sql = "DESCRIBE " . $myTable; //mysql only
$prepared_statements = $this->myAdapter->prepare($sql);
$prepared_statements->execute();
return $results = $prepared_statements->fetchAll(PDO::FETCH_COLUMN);
}
【问题讨论】: