如果不存在则插入mysql,如果存在则不更新
Posted
技术标签:
【中文标题】如果不存在则插入mysql,如果存在则不更新【英文标题】:insert into mysql if not exist and dont update if exsist 【发布时间】: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 :) 【参考方案1】:代码一定是这样的
插入table_name set id="some_id", 名称 = 'some_name' 重复密钥更新 name = 'some_name'
id 字段也必须定义为主键
【讨论】:
OP 的语法和你的一样有效。 @lelio faieta 请回显你的 sql 查询 你在说什么? 对你来说对不起@willy andika OP 的问题已经解决。这是查询中的 inser vs insert 语句中的拼写错误以上是关于如果不存在则插入mysql,如果存在则不更新的主要内容,如果未能解决你的问题,请参考以下文章
MySQL:如果值存在,则对行进行更新,如果值不存在,则插入 [重复]