为什么$ stmt-> execute()print_r = ajax中的对象

时间:2018-10-02 11:49:34

标签: php ajax

简介:我正在使用ajax创建服务器端数据表库。

错误::我的print_r($ stmt)似乎正在返回Object。我认为这是第一个错误,导致其他错误,例如“未捕获的错误:对成员函数fetch_assoc()的调用为null”。

此外,我认为print_r($ result)没有显示任何详细信息。

Ajax代码:

 <script type="text/javascript"> 
    $(document).on('click','.edit_btn',function (){
      var id = $(this).attr("id").match(/\d+/)[0];
      var edit_id = $('#example').DataTable().row( id ).data();
      var edit_id = edit_id[0];
      $.ajax({
        type:'POST',
        url: 'form.php',
        datatype: "json",
        data: { edit_id : edit_id },
        success: function(result) {
          //alert(edit_id);
          alert(result);
          $("#edit_id").val(edit_id);
        } //success func
      }); //ajax
    }); //end ready
    </script>

Form.php:

$conn=mysqli_connect($host,$user,$pass,$db);
$stmt = $conn->prepare("SELECT * FROM `employees` WHERE `id` = ?");
$stmt->bind_param("i", $_POST['edit_id']);
$stmt->execute();
print_r($stmt);
$result = mysqli_query($conn, $stmt);
print_r($result);

$row = $result->fetch_assoc();
echo $row;    

2 个答案:

答案 0 :(得分:0)

最简单的说,您不能在Ajax中使用print_r,因为它与结尾处的echo语句冲突。相反,在检查变量时必须使用var_dump。

答案 1 :(得分:-1)

在要使用print_r打印的php文件上,与DT一起使用时会出现错误。首先注释一下print_r行,然后在第二个注释中看不到将查询的返回数据插入到数组中的while循环,在此之后,您必须对最终的echo进行编码。

由于我不知道您餐桌上的员工的信息,因此举一个例子: 您的查询应类似于:

UIFont.FromName([YourFontFullName], 20f);