OOP新手。
尝试在数据库中查询特定行。 数据库结构如下: id - title - value
(我正在尝试查询匹配标题并获取后续值)
查询会导致数组或只是空白。
我的某些格式在某处混淆或不正确。谁能发现我做错了什么?
查询(在调用此模型的同一模型中) catalog / model / order.php :
public function getTemplate($title) {
$query = $this->db->query("SELECT * FROM km_mail_templates WHERE `title` = '" . $this->db->escape($title) . "'");
foreach ($query->rows as $result) {
$template_data[$result['title']] = $result['value'];
}
return $template_data;
}
我试图打电话的变量:
public function index() {//called from within order.php model
$this->getTemplate()['new_greeting'];
}
也尝试过:
$this->model_catalog_order->getTemplate()['new_greeting'];
和
$this->model_catalog_order->getTemplate('new_greeting');
答案 0 :(得分:0)
如果查询找不到任何内容,foreach()
正文永远不会被执行,因此您永远不会初始化$template_data
,并且您将返回null
。您需要在循环之前将其初始化为数组。
由于你每次只是在循环中覆盖相同的数组元素,所以循环没有意义,只需从数组中获取一个元素。
似乎没有必要返回数组,您只需将查询检索到的值作为字符串返回。
public function getTemplate($title) {
$query = $this->db->query("SELECT * FROM km_mail_templates WHERE `title` = '" . $this->db->escape($title) . "'");
if (!empty($query->rows)) {
return $query->rows['value'];
} else {
return '';
}
}
然后你会像这样使用它:
$greeting = $this->getTemplate('new_greeting');