【问题标题】:insert into mysql if not exist and dont update if exsist如果不存在则插入mysql,如果存在则不更新
【发布时间】:2016-04-18 10:16:58
【问题描述】:

我有这样的功能代码:

$data_temp = $this->import_m->getPresensi()->result_array();


    $tbl = "tb_kehadiran";    
    $tbl_temp = "tb_kehadiran_temp";
    $db_mysql = $this->load->database('default',TRUE);
    $db_mysql->trans_start();

    foreach($data_temp as $k => $v){

        $dataTemp = array(

            'colUserID' => $v['userID'],
            'colDate' => $v['tanggal'],
            'colJamMasuk' => $v['jam_masuk'],
            'colJamKeluar' => $v['jam_keluar'],
            'colTerlambat' => $v['late'],
            'colLemburPagi' => $v['lembur_pagi'],
            'colLemburSore' => $v['lembur_sore']

            );  

        $sql = "INSER INTO $tbl (
                    'colUserID',
                    'colDate',
                    'colJamMasuk',
                    'colJamKeluar',
                    'colTerlambat',
                    'colLemburPagi',
                    'colLemburSore'
                 ) VALUES (
                    $v[userID],
                    $v[tanggal],
                    $v[jam_masuk],
                    $v[jam_keluar],
                    $v[late],
                    $v[lembur_pagi],
                    $v[lembur_sore]
                ) ON DUPLICATE KEY UPDATE
                    'colJamMasuk' = $v[jam_masuk],
                    'colJamKeluar' = $v[jam_keluar],
                    'colTerlambat' = $v[late],
                    'colLemburPagi' = $v[lembur_pagi],
                    'colLemburSore' = $v[lembur_sore]
                ";
        $db_mysql->query($sql);

    }

    $db_mysql->trans_complete();
    $db_mysql->close();

结果错误: 错误号:1064

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在

附近使用的正确语法

'INSER INTO tb_kehadiran ( 'colUserID', ' at line 1

INSER INTO tb_kehadiran ( 'colUserID', 'colDate', 'colJamMasuk', 'colJamKeluar', 'colTerlambat', 'colLemburPagi', 'colLemburSore' ) VALUES ( 1, 2015-01-05, 07:01:00, 16:30:00, 00:00:00.000000, 00:28:16.000000, 00:00:43.000000 ) ON DUPLICATE KEY UPDATE 'colJamMasuk' = 07:01:00, 'colJamKeluar' = 16:30:00, 'colTerlambat' = 00:00:00.000000, 'colLemburPagi' = 00:28:16.000000, 'colLemburSore' = 00:00:43.000000

Filename: D:\xampp\htdocs\presensi\system\database\DB_driver.php

Line Number: 331

如果数据不存在,我希望我的源代码插入数据,如果数据存在则不更新。
请帮助我。

【问题讨论】:

  • 您在 inserT 中缺少一个 t
  • 这是 INSERT 不是 INSER :)

标签: php mysql codeigniter


【解决方案1】:

代码一定是这样的

插入table_name set id="some_id", 名称 = 'some_name' 重复密钥更新 name = 'some_name'

id 字段也必须定义为主键

【讨论】:

  • OP 的语法和你的一样有效。
  • @lelio faieta 请回显你的 sql 查询
  • 你在说什么?
  • 对你来说对不起@willy andika
  • OP 的问题已经解决。这是查询中的 inser vs insert 语句中的拼写错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 2019-10-17
  • 2012-12-13
  • 2012-12-17
相关资源
最近更新 更多