如果sql插入成功,则没有反馈


No feedback if sql insert succeeded

我正在执行以下场景:
当我按下一个按钮时,我会将其插入数据库,这样就可以工作了。但无论成功与否,我都不会得到反馈(警报不会弹出)。但如果我在数据库中查看,它是插入的

if(isset($_POST['action']) && $_POST['action'] > 3) 
    {
    $message = 'success';
    $message1 = 'failed';
        $conn = new mysqli($servername, $username, $password, $dbname);
        $values = $_POST['action'];
        $status = 'pending';
        $sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
        if ($conn->query($sql) === TRUE) {
?>
<script type='text/javascript'>alert("<?php echo $message; ?>");</script>
<?php } else { ?>
<script type='text/javascript'>alert("<?php echo $message1; ?>");</script>
<?php }                                    
    }       
    }
?>

这是我用来在数据库中插入值的按钮和输入字段:

<input type="text" id="number"><br>
    <button type="button" class="btn btn-success" id="test" onclick="myAjax(number.value);">test</button>

这是ajax调用:

function myAjax(value) {

  $.ajax({
       type: "POST",
       url: 'test.php',
       data:{action:value},
       dataType: 'text',
       success: function(data) {
       }
  });
}

返回AJAX调用的状态,然后在那里处理响应。

if(isset($_POST['action']) && $_POST['action'] > 3) 
    {
    $message = 'success';
    $message1 = 'failed';
        $conn = new mysqli($servername, $username, $password, $dbname);
        $values = $_POST['action'];
        $status = 'pending';
        $sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
        if ($conn->query($sql) === TRUE) {
echo $message; 
} else { 
echo $message1;
}                                    
    }       
    }
?>

然后在JS中:

function myAjax(value) {

  $.ajax({
       type: "POST",
       url: 'test.php',
       data:{action:value},
       dataType: 'text',
       success: function(data) {
            alert(data);
       }
  });
}

还要考虑使用准备好的语句,http://php.net/manual/en/pdo.prepared-statements.php,以避免SQL注入。

这是因为您的ajax成功没有任何作用。

在PHP中:

if ($conn->query($sql) === true) {
    echo "Success";
} else {
    echo "Failure";
}

在JS中:

 $.ajax({
   type: "POST",
   url: 'test.php',
   data: {action:value},
   dataType: 'text',
   success: function(data) {
       alert(data);
   }
}); 

last}不会关闭示例中的任何代码块。if不需要===TRUE,只要if($conn->query($sql)),如果查询反馈为TRUE,则if将为TRUE。

像这样的东西:

    <?
    if(isset($_POST['action']) && $_POST['action'] > 3) {
        $conn = new mysqli($servername, $username, $password, $dbname);
        $values = $_POST['action'];
        $status = 'pending';
        $sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
        if ($conn->query($sql)) {
            echo 'succes';
        } else { 
            echo 'fail';        
        }                                    
    }       
    ?>

你的js喜欢:

    function myAjax(value) {

      $.ajax({
           type: "POST",
           url: 'test.php',
           data:{action:value},
           dataType: 'text',
           success: function(data) {
                alert(data);
           }
      });
    }

好的,所以我做了一个变通方法,不是我想要的,但它现在正常工作。基本上,我在Ajax成功函数中处理它,而不是在php文件中。

而不是这个

if(isset($_POST['action']) && $_POST['action'] > 3) 
    {
    $message = 'success';
    $message1 = 'failed';
        $conn = new mysqli($servername, $username, $password, $dbname);
        $values = $_POST['action'];
        $status = 'pending';
        $sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
        if ($conn->query($sql) === TRUE) {
echo $message; 
} else { 
echo $message1;
}                                    
    }       
    }
?>

这个

function myAjax(value) {

  $.ajax({
       type: "POST",
       url: 'test.php',
       data:{action:value},
       dataType: 'text',
       success: function(data) {
       }
  });
}

我现在有了这个:

if(isset($_POST['action']) && $_POST['action'] > 3) 
    {
    $message = 'success';
    $message1 = 'failed';
        $conn = new mysqli($servername, $username, $password, $dbname);
        $values = $_POST['action'];
        $status = 'pending';
        $sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
        if ($conn->query($sql) === TRUE) {}                                    
    }
?>

这个:

function myAjax(value) {


    $.ajax({
           type: "POST",
           url: 'test.php',
           data:{action:value},
           dataType: 'text',
           success: function(data) {
           if(value > 3 && value != undefined && value != "")
           {
            alert("working");
           }
            else
           {
            alert("not working");
           }
               }
      });
    }