点击特定链接时,我无法上传数据库信息。
似乎数据没有发送到upload.php
HTML:
<a href="#" class="btn" onClick="$(this).hide(); myfunc('.$a.', '.$b.')" role="button"> Mylink </a>
使用Javascript:
<script type="text/javascript">
function myfunc(a, b)
{
$.ajax({
url: "upload.php",
type: "POST",
data: {"a": a, "b": b},
success:function() {
alert( "Done");
}
});
}
</script>
upload.php的:
if (isset($_POST['a']) && isset($_POST['b']))
{
$a = $_POST['a'];
$b = $_POST['b'];
$query1 = $db->prepare('UPDATE users SET a = a + 1 where uid="'.$a.'"');
$query1->execute();
$query2 = $db->prepare('UPDATE users SET b = b + 1 where uid="'.$b.'"');
$query2->execute();
if (!$query1 || !$query2)
{
echo "Erreur SQL";
exit();
}
}
答案 0 :(得分:0)
第一:您的HTML应该是这样的myfunc(<?php echo $a ?>,<?php echo $b ?>)"
<a href="#" class="btn" onClick="$(this).hide(); myfunc(<?php echo $a ?>,<?php echo $b ?>)" role="button"> Mylink </a>
第二:在ajax请求中添加错误处理部分
function myfunc(a, b)
{
$.ajax({
url: "upload.php",
type: "POST",
data: {"a": a, "b": b},
success:function() {
alert( "Done");
},
error:function(jqXHR,error_string,error){
console.log(error);
}
});
}
3rd :使用bind_param值来避免SQL注入,整数值不应该用单引号括起来
$query1 = $db->prepare('UPDATE users SET a = a + 1 where uid=?');
$query1->bind_param('i',$a);
$query1->execute();
第4次:在upload.php
文件中,您首先准备$query2
并尝试执行$query1
我认为这是错误的,请更正。