我有以下ajax和php文件,可将数据输入到当前的mytable表中。以下代码可以很好地协同工作。
Ajax文件:
<script type="text/javascript">
function insertData() {
var stata=$("#stata").val();
var statb=$("#statb").val();
var statc=$("#statc").val();
$.ajax({
type: "POST",
url: "update.php",
data: {stata:stata,statb:statb,statc:statc},
dataType: "JSON",
success: function(data) {
$("#message").html(data);
$("p").addClass("alert alert-success");
},
error: function(err) {
alert(err);
}
});
}
</script>
update.php
<?php
include('db.php');
$stata=$_POST['stata'];
$statb=$_POST['statb'];
$statc=$_POST['statc'];
$stmt = $DBcon->prepare("REPLACE INTO mytable (stata,statb,statc) VALUES(:stata, :statb,:statc)");
$stmt->bindparam(':stata', $stata);
$stmt->bindparam(':statb', $statb);
$stmt->bindparam(':statc', $statc);
if($stmt->execute())
{
$res="Data Inserted Successfully:";
echo json_encode($res);
}
else {
$error="Not Inserted,Some Problem occur.";
echo json_encode($error);
}
?>
我想做的是每次我输入数据时都覆盖表中的同一行(更新或替换)(如id = 1)。
但是,当我将"Where id=1"
添加到sql查询时,在屏幕上出现[object Object]错误。我无法以任何方式使其工作。我该如何克服这个问题?谢谢。
答案 0 :(得分:2)
如果要更新行(而不是替换行),请使用UPDATE
而不是REPLACE
。
UPDATE mytable SET stata = :stata, statb = :statb, statc = :statc WHERE id = 1
答案 1 :(得分:1)
我认为问题出在数据类型上。
JSON请求通常返回JSON对象,而不是字符串。
Console.log(data)
然后找出错误的字符串值,然后使用它作为正确的键。
另外,如果您的服务器代码发生错误,它将返回一个JSON对象而不是一个字符串,因此您必须遍历该对象,直到获得要输出的字符串为止。
$("#message")