使用链接上传数据库


当我

单击特定链接时,我在上传数据库信息时遇到问题。

似乎数据没有发送上传.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>

上传.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();
        }
    }       

1st : 你的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);
            }
           });
    }

第三:使用bind_param值以避免SQL注入,整数值不应用单引号括起来

$query1 = $db->prepare('UPDATE  users SET a = a + 1 where uid=?');   
$query1->bind_param('i',$a);                                     
$query1->execute();

第四:在您的upload.php文件中,首先准备$query2并尝试执行$query1我认为这是错别字,请更正。

最新更新