2013-04-12 5 views
3

Попытка вставить строку в мою базу данных с помощью CodeIgniter.Вставить данные в базу данных с помощью codeigniter

моя таблица базы данных Customer_Orders и поля CustomerName и OrderLines. Переменные передаются правильно.

Мой контроллер (sales.php):

function new_blank_order_summary() 
    { 
     $data = array(
     'OrderLines'=>$this->input->post('orderlines'), 
     'CustomerName'=>$this->input->post('customer') 
     ); 
    $this->sales_model->order_summary_insert($data); 

    $this->load->view('sales/new_blank_order_summary'); 
    } 

Моя модель (sales_model.php):

function order_summary_insert($data){ 
    $this->db->insert('Customer_Orders',$data); 
} 

Хотя видовые нагрузки правильно, никаких данных не вставляются в базу данных.

Любые идеи относительно того, почему нет?

Заранее спасибо.

+1

Я просто хотел удостовериться, что вы знаете, имена таблиц чувствительны к регистру в большинстве систем unix с использованием MySQL. Я могу только предположить, но у вас есть OrderLines и orderlines, CustomerName и customername. –

+0

Спасибо, Дэвид, я исправил это, но все еще не работал. любые другие советы. Благодарю. – Smudger

+0

где вид и структура таблицы?и вам нужно будет добавить form_validation в это, чтобы убедиться, что вы действительно публикуете что-нибудь – ahmad

ответ

7

попробуйте это в вашей модели.

function order_summary_insert() 
    $OrderLines=$this->input->post('orderlines'); 
    $CustomerName=$this->input->post('customer'); 
    $data = array(
     'OrderLines'=>$OrderLines, 
     'CustomerName'=>$CustomerName 
    ); 

    $this->db->insert('Customer_Orders',$data); 
} 

попробуйте использовать контроллер, чтобы контролировать представление, и модели всегда публикуют ваши значения в модели. это легко понять. вы контроллер будет

function new_blank_order_summary() { 
    $this->sales_model->order_summary_insert($data); 
    $this->load->view('sales/new_blank_order_summary'); 
} 
+0

Вы раскачиваете друга (y) – NullPointer

1

Основываясь на том, что я вижу здесь, вы использовали строчные имена полей в массиве $ data и верхних регистрах в таблице базы данных.

+0

Спасибо Kobus, я изменил это в том же случае, что и ваш совет Давидса, но все еще не работает. Я знаю, что модель вызывается и запускается, поскольку я вижу эхо, если я вставляю его. Как я могу устранить эту проблему или получить обратную связь от базы данных? Спасибо – Smudger

+0

Возможно, возвращая affected_rows() после вставки данных? 'return $ this-> db-> affected_rows();' –

+0

Вы можете найти полезные журналы в этих файлах. Журнал ошибок PHP Журнал MySQL Доступ к Apache и журнал ошибок Apache –

1

Это будет лучше для вас, чтобы написать такой код.

В вашем контроллере Напишите этот код.

function new_blank_order_summary() { 
    $query = $this->sales_model->order_summary_insert(); 
    if($query) { 
     $this->load->view('sales/new_blank_order_summary'); 
    } else { 
     $this->load->view('sales/data_insertion_failed'); 
    } 
    } 

и в вашей модели

function order_summary_insert() { 
    $orderLines = trim(xss_clean($this->input->post('orderlines'))); 
    $customerName = trim(xss_clean($this->input->post('customer'))); 
    $data = array(
     'OrderLines'=>$orderLines, 
     'CustomerName'=>$customerName 
    ); 

    $this->db->insert('Customer_Orders',$data); 
    return ($this->db->affected_rows() != 1) ? false : true; 
} 
0

Посмотреть

<input type="text" name="name"/> 
<input type="text" name="class"/> 

Контроллер

function __construct() 
{ 
    parent:: __construct(); 
    $this->load->Model('Model'); 
} 

function index() 
{ 
    $this->load->view('view'); 
} 

function user(){ 
    if (isset($_POST['submit'])){ 
     $data = array('name'=>$_POST['name'], 
        'class'=>$_POST['class']); 
     $this->Model->insert($data); 
    } 
} 

Модель

function insert($data) 
{ 
    $this->db->insert('table_name',$data); 
    return true; 
} 
0
function saveProfile(){ 
    $firstname = $this->input->post('firstname'); 
    $lastname = $this->input->post('lastname'); 
    $post_data = array('firstname'=> $firstname,'lastname'=>$lastname); 
    $this->db->insert('posts',$post_data); 
    return $this->db->insert_id(); 
} 
0
function order_summary_insert() 
$OrderLines=$this->input->post('orderlines'); 
$CustomerName=$this->input->post('customer'); 
$data = array(
'OrderLines'=>$OrderLines, 
'CustomerName'=>$CustomerName 
); 

$this->db->insert('Customer_Orders',$data); 
} 
0

Проверьте контроллер:

function order() 
    $OrderLines = $this->input->post('orderlines'); 
    $CustomerName = $this->input->post('customer'); 
    $data = array(
     'OrderLines' => $OrderLines, 
     'CustomerName' =>$CustomerName 
    ); 

    $this->db->insert('Customer_Orders', $data); 
} 
0

просто вставить $ this-> load-> базы данных(); в вашей модели.

function order_summary_insert($data){ 
    $this->load->database(); 
    $this->db->insert('Customer_Orders',$data); 
} 
Смежные вопросы