使用Code Igniter的模型中的数据库错误

时间:2018-01-17 01:47:19

标签: sql database codeigniter

错误: (POST http://localhost/codeigniter/Purchase/transaction/update?id=7 500(内部服务器错误)

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to 
your MySQL server version for the right syntax to use near ''supp_id2` = 
s.`supp_id` WHERE p.purch_id =' at line 1

SELECT p.*, s.supp_name FROM purchase as p LEFT JOIN supplier as s ON 
p.'supp_id2` = s.`supp_id` WHERE p.purch_id =

Filename: C:/xampp/htdocs/codeigniter/system/database/DB_driver.php

Line Number: 691

这是我的代码的控制器,这是交易所在的位置

function transaction($txn = null) {
    switch ($txn) {
        case 'list':

            $response['data']=$this->Purchase_model->get_all_purchase();
            echo json_encode($response);

        break;

        case 'create':
            $purchase = 
            array(
                'po_number' => $this->input->post('po_number'),
                'date' => $this->input->post('date'),
                'supp_id2' => $this->input->post('supp_id2'),
                'contact_person' => $this->input->post('contact_person'),
                'delivered_to' => $this->input->post('delivered_to'),
                'plu_number' => $this->input->post('plu_number'),
                'address' => $this->input->post('address'),
                'remarks' => $this->input->post('remarks'),
            );

            $insert = $this->Purchase_model->purchase_add($purchase);

            $resp['row_added'] = $this->Purchase_model->get_purchase($insert);
            $resp['title'] = 'Success!';
            $resp['stat'] = 'success';
            $resp['msg'] = 'Purchase Information successfully created.';


            echo json_encode($resp);
        break;

        case 'update':
            $data = 
            array(
                'po_number' => $this->input->post('po_number'),
                'date' => $this->input->post('date'),
                'supp_id2' => $this->input->post('supp_id2'),
                'contact_person' => $this->input->post('contact_person'),
                'delivered_to' => $this->input->post('delivered_to'),
                'address' => $this->input->post('address'),
                'plu_number' => $this->input->post('plu_number'),
                'remarks' => $this->input->post('remarks'),
            );

这是我创建的购买模式

 public function get_purchase($purch_id)
 {
    $db = "SELECT p.*, s.supp_name FROM purchase as p LEFT JOIN supplier as 
 s ON p.'supp_id2` = s.`supp_id` WHERE p.purch_id = $purch_id ";
 return $this->db->query($db)->result();-
    $this->db->from($this->table);
    $this->db->where('purch_id',$id);
    $query = $this->db->get();

    return $query->row();
}   

如果您需要查看其他详细信息,请询问我可以将其发送到评论部分或编辑此帖子,如何解决此问题?

更新

我更改了'supp_id2 to supp_id2`并显示了一个新的但我认为同样的错误:

 Error Number: 1064

 You have an error in your SQL syntax; check the manual that corresponds to 
 your MySQL server version for the right syntax to use near '' at line 1

 SELECT p.*, s.supp_name FROM purchase as p LEFT JOIN supplier as s ON 
 p.`supp_id2` = s.`supp_id` WHERE p.purch_id =

 Filename: C:/xampp/htdocs/codeigniter/system/database/DB_driver.php

 Line Number: 691                                                                                   

2 个答案:

答案 0 :(得分:0)

语法是wron:

 $db = "SELECT p.*, s.supp_name FROM purchase as p LEFT JOIN supplier as 
    s ON p.'supp_id2` = s.`supp_id` WHERE p.purch_id = $purch_id ";

复制此选择

  $db = "SELECT p.*, s.supp_name FROM purchase as p LEFT JOIN supplier as 
 s ON p.`supp_id2` = s.`supp_id` WHERE p.purch_id = $purch_id ";

答案 1 :(得分:0)

正如您在错误中看到的那样

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to 
your MySQL server version for the right syntax to use near ''supp_id2` = 
s.`supp_id` WHERE p.purch_id =' at line 1

SELECT p.*, s.supp_name FROM purchase as p LEFT JOIN supplier as s ON 
p.'supp_id2` = s.`supp_id` WHERE p.purch_id =

Filename: C:/xampp/htdocs/codeigniter/system/database/DB_driver.php

Line Number: 691

购买ID未传递给查询。