使用MVC插入PHP表单数据到mysql数据库时出现错误
问题描述:
嗨,我下载了opencart版本1.5.2.1 ...现在我正在开发一个API使用opencart flow.i开发了使用tpl,控制器,语言文件。 我写的模型also.what确切的概念是当我输入表单数据,应该加载到数据库中...但它显示一个错误,说在model.how中的未定义的索引获取控制器中的表单数据,以及如何通过数据到模型... 请帮助我。使用MVC插入PHP表单数据到mysql数据库时出现错误
这是我的控制文件:
<?php
class ControllerSaleAd extends Controller {
private $error = array();
public function index() {
$this->load->language('sale/ad');
$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('sale/ad');
$this->data['heading_title']=$this->language->get('heading_title');
$this->data['entry_customer_name'] = $this->language->get('entry_customer_name');
$this->data['column_name']=$this->language->get('column_name');
$this->data['column_place'] = $this->language->get('column_place');
$this->data['column_date'] = $this->language->get('column_date');
$this->data['column_units'] = $this->language->get('column_units');
$this->data['column_price'] = $this->language->get('column_price');
$this->data['button_insert'] = $this->language->get('button_insert');
$this->data['breadcrumbs'] = array();
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('sale/ad', 'token=' . $this->session->data['token'], 'SSL'),
'separator' => false
);
$url='';
$this->data['action'] = $this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL');
$this->template='sale/ad.tpl';
$this->children = array(
'common/header',
'common/footer'
);
$this->response->setOutput($this->render());
$this->insert();
/*$this->load->model('sale/ad');
$this->data['orders']= array();
$data=array(
'customer' => $customer,
'adtype' => $adtype,
'adplace' => $adplace,
'date' => $date,
'units' => $units,
'price' => $price,
);
$results = $this->model_sale_ad->insert($data);
$this->redirect($this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL'));*/
}
public function insert() {
echo("inserting data");
$this->load->model('sale/ad');
if (($this->request->server['REQUEST_METHOD'] == 'POST')) {
echo("hello");
echo($this->request->post);
echo($this->model_sale_ad->insert);
$this->model_sale_ad->insert($this->request->post);
echo("in if method");
/*$url = '';
if (isset($this->request->get['customer'])) {
$url .= '&customer=' . $this->request->get['customer'];
}
if (isset($this->request->get['adtype'])) {
$url .= '&adtype=' . $this->request->get['adtype'];
}
if (isset($this->request->get['adplace'])) {
$url .= '&adplace=' . $this->request->get['adplace'];
}
if (isset($this->request->get['date'])) {
$url .= '&date=' . $this->request->get['date'];
}
if (isset($this->request->get['units'])) {
$url .= '&units=' . $this->request->get['units'];
}
if (isset($this->request->get['price'])) {
$url .= '&price=' . $this->request->get['price'];
}
$customer= $this->request->get[$entry_customer_name];
echo($customer);
$data=array(
'customer' => $customer,
'adtype' => $adtype,
'adplace' => $adplace,
'date' => $date,
'units' => $units,
'price' => $price,
);
$results = $this->model_sale_ad->insert($data);*/
$this->redirect($this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL'));
}
}
}
?>
这是我的模型:
<?php
class ModelSaleAd extends Model{
public function insert($data)
{
$this->db->query("INSERT INTO " . DB_PREFIX . "ad SET customer = '"
.$this->db->escape($data['customer']) . "',adtype = '" .$this->db->escape($data['adtype']) . "',adplace = '" . $this->db->escape($data['adplace']) ."',date = NOW()'" . "',units = '".(int)$data['units'] ."',price = '".(int)$data['price']."')");
}
}
答
尝试public function insert
看着$data['customer']
类型的变量,例如var_dump($data)
。它可能很简单,因为你缺少数组中的变量以及生成缺少的sql时。
告诉我们'$ this-> request-> post'里面有什么? – maialithar 2012-04-30 12:28:33