sql“更新”代码在特定情况下不起作用

时间:2019-12-15 16:23:51

标签: javascript php

下一个php代码无法更新服务器上的数据。但我也可能会看到设置了“ post”变量,因为js代码正在执行代码的“ if(ajaxReturn(ajax)== true)”部分。

我的逻辑在这里很困惑。 第一: 我看到如果仅使用它,则更新php代码的一部分就可以正常工作(第一段未介绍)。在其他情况下,我不需要使用ajax调用,并且一旦在浏览器中启动页面,数据库中的“ did_read”字段就会更新。此测试告诉我sql查询语法正确。 第二: 我可能还会看到ajax获得成功的响应,这意味着设置了“ post”变量。

那为什么我的代码中不执行sql查询的原因又是什么呢?

Php:

<?php 
      /*$strid= 'status_218';
       $sql = "UPDATE notifications SET did_read='1' WHERE note LIKE '%$strid%'";
       $query= mysqli_query($db_conx, $sql);
       echo 'did_read_ok';
       exit;*/

        if (isset($_POST['action']) && $_POST['action'] == "toggleComment"){
            if(!isset($_POST['str']) || $_POST['str'] == ""){
                mysqli_close($db_conx);
                echo 'no_ok';
                exit();
            }

        //$strid= $_POST['str'];
        $strid= 'status_218';
           if (isset($_POST['str'])){ 
           $sql = "UPDATE notifications SET did_read='1' WHERE note LIKE '%$strid%'";
           $query= mysqli_query($db_conx, $sql);
           echo 'did_read_ok';
           exit;
            }
        }
        ?>

Js:

 function reply_click(e) {
 var str = e.target.parentNode.id;
     console.log(str);
    var ajax = ajaxObj("POST", "status.php");
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
            var aa =(ajax.responseText);
            var aa2=aa.replace(/\s+/g, '');
            if(aa2 == 'did_read_ok'){
            _(str).parentElement.style.display = 'none';
            } else {
            alert(ajax.responseText);   
            }
        }
    }
    ajax.send("action=toggleComment&str="+str);
}

0 个答案:

没有答案