【发布时间】:2014-07-04 14:16:33
【问题描述】:
首先我有 js/jquery/ajax 代码:
$('#sacuvajMapu').click(function (e) {
$.ajax({
url: "insertMap.php",
type: "POST",
async: true,
data: { ajdi:ajdi, mapData:$('#mapData').val();}, //your form data to post goes here as a json object
dataType: "html",
success: function(data) {
console.log(data);
}
error: function(data) {
console.log(data);
}
});
});
});
我也有mysql数据库:
现在我需要用我的 ajax 代码将数据插入数据库,所以我写:
try {
$STH = $db->prepare("INSERT INTO map (id_parcele, json, user_id)
VALUES (:1,:2,:3);");
$STH->bindParam(':1', $_POST['ajdi']);
$STH->bindParam(':2', $_POST['mapData']);
$STH->bindParam(':3', $user_id);
一切正常。
现在我有一个问题。
我必须检查值$_POST['ajdi'] 是否在表列id_parcele 中,如果只是用来自$_POST['mapData'] 的值更新表列json,如果POST['ajdi'] 在表列id_parcele 中不存在,那么我需要用上面的数据添加新行...
我该怎么做? 什么是正确的方法?
【问题讨论】:
-
您可以使用
rowCount()来检查一行是否存在。这是一种选择。 -
在 mysql 中,您可以指定
insert ... on duplicate key update语法,如果键已经存在,它将更新一行。 dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html