【问题标题】:sql syntax error when inserting into database codeigniter插入数据库codeigniter时出现sql语法错误
【发布时间】:2019-11-26 03:28:16
【问题描述】:

我收到一条错误消息,提示“您的 SQL 语法有误;请查看与您的 MariaDB 服务器版本相对应的手册以了解要使用的正确语法” 我还是 codeigniter 的新手,我真的需要帮助 目前这是我一直在尝试应用的代码

function save() {

        $reporter=$this->Settings_m->greporter();
        $jabrik=$this->Settings_m->gjabrik();
        $redpel=$this->Settings_m->gredpel();

        $usertxt="";
        if (in_array($this->session->userdata('ugroup'), $reporter )) {
            $usertxt=",reporter=".$this->user.",reporter_time=now()";
        }
        if (in_array($this->session->userdata('ugroup'), $jabrik )) {
            $usertxt=",jabrik=".$this->user.",jabrik_time=now()";
        }
        if (in_array($this->session->userdata('ugroup'), $redpel )) {
            $usertxt=",redpel=".$this->user.",redpel_time=now()";
        }

        /* end for usertxt call */

        if($this->input->post('pub') == 1){
            if($this->input->post('tglpub') == "0000-00-00 00:00:00" || $this->input->post('tglpub') == ""){
                $tgl=",publish_up=now()";
            }else{
                //$tgl = $this->input->post('tglpub');
                $tgl = ",publish_up='".$this->input->post('tglpub')."'";
            }
        }else{
            $tgl=",publish_up=''";
        }

        $title =str_replace('"',"'",$this->input->post('title'));

        $query=" insert gis_news_items set "
              .' title="' .$title.'"'
              .",alias='" . $this->input->post('alias',true )."'"
              .",introtext='". $this->input->post('content')."'"
              .",fulltexts=' '"
              .",catid=".$this->input->post('catid')
              .",published=".$this->input->post('pub')
              // .",hl=".$this->input->post('hl')
              // .",focus=".$this->input->post('fcs')
              // .",byline=".$byline
              .$usertxt 
              .",modified_by=" . $this->user 
              // .",publish_up='" .$this->input->post('tglpub')."'"
              .$tgl
              .',metadesc="' . str_replace('"',"'", $this->input->post('deskripsi',true)  )   .'"'
              .',metakey="' . str_replace('"',"'", $this->input->post('keyword',true)  )      .'"' ;
        $this->M_general->add_data("gis_news_items", $query);      

    }

编辑
这是我从我运行的查询中获得的数据,我尝试使用此处的建议作为参考来调整它,但我仍然收到错误,所以我撤消它以查看错误

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'insert into gis_news_items values ( title="sepatu nike 5m",alias='sepatu-nike-5' at line 1

INSERT INTO `gis_news_items` ( insert into gis_news_items values ( title="sepatu nike 5m",alias='sepatu-nike-5m',introtext='

sepatu nike seharga 5m dengan desain indomie
',fulltexts=' ',catid=586,published=0,modified_by=1150,publish_up='',metadesc="sepatu desain indomie",metakey="sepatu, indomie") VALUES ('')

任何帮助和解释将不胜感激,因为我仍在学习如何编写一个好的查询
谢谢你:)

【问题讨论】:

  • codeigniter 有一个查询生成器。它将有助于缓解问题并逃避数据(您似乎没有这样做)。我建议使用它。对于您的问题,我怀疑您的逗号或某处放错了位置。没有echo $query 很难判断你正在生成什么。
  • 我已经更新了我得到的错误信息的问题

标签: php mysql sql codeigniter


【解决方案1】:

您的 SQL 查询无效。

$query=" insert gis_news_items set "

应该是

$query=" insert into gis_news_items values( "
....

在此处查看更多示例 https://mariadb.com/kb/en/library/insert/

【讨论】:

  • 他们使用的是 SET 语法,这是您链接到的页面上 INSERT 的第二个选项。
【解决方案2】:

试试sql

$query=" insert gis_news_items (title, alias, introtext, fulltexts, catid, published, modified_by, metadesc, metakey )  values 
('".$title."', '".$this->input->post('alias',true )."', '". $this->input->post('content')."',' ', ".$this->input->post('catid').", '".$this->input->post('pub').$usertxt."', ".$this->user.$tgl.", '".str_replace('"',"'", $this->input->post('deskripsi',true)  )."', '".str_replace('"',"'", $this->input->post('keyword',true)  )."' ) ";

【讨论】:

    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多