为了账号安全,请及时绑定邮箱和手机立即绑定

php mysql中的ajax数据响应始终为0

php mysql中的ajax数据响应始终为0

PHP
四季花海 2021-11-13 16:58:17
我想通过ajax php将一些数据从mysql加载到div。自动递增的 id 字段始终为零。我曾尝试使用 get、post 等,但都没有工作<script>  $(document).ready(function(){   $(document).on('click', '#getUser', function(e){    e.preventDefault();    var uid = $(this).data("customer_id");   // it will get id of clicked row    $('#txtHint').html(''); // leave it blank before ajax call    $('#mySidenav').show();      // load ajax loader    $.ajax({      url: 'getCustomerDetails.php',      type: 'GET',      data: 'customer_id='+uid,      dataType: 'html'    })    .done(function(data){      console.log(data);        $('#txtHint').html('');          $('#txtHint').html(data); // load response       $('#modal-loader').hide();      // hide ajax loader     })    .fail(function(){      $('#txtHint').html('<i class="glyphicon glyphicon-info-sign"></i> Something went wrong, Please try again...');      $('#modal-loader').hide();    });  }); });</script>        <?phpinclude_once('../../config/dbconfig.php');    if (isset($_REQUEST['customer_id'])) {        $id = intval($_REQUEST['customer_id']);        $query = "SELECT * FROM customers WHERE customer_id=:id";        $stmt = $pdo->prepare( $query );        $stmt->execute(array(':id'=>$id));        $row=$stmt->setFetchMode(PDO::FETCH_ASSOC);        ?>        <div class="row">            <div class="col-md-1">            <div class="col-md-4" >                <?php echo $row['first_name'];?>            </div>            <div class="col-md-6">            </div>        </div>    </div>    <?php echo $id;?><br/><?php}?>结果不回显 firs_name 因为 $id 始终为 0。我想在完成后获取个人 $id(auto_increment) 它应该显示用户记录
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

从从数据库调试您的实际结果开始。


if (isset($_REQUEST['customer_id'])) {


        $id = intval($_REQUEST['customer_id']);

        $query = "SELECT * FROM customers WHERE customer_id=:id";

        $stmt = $pdo->prepare( $query );

        $stmt->execute(array(':id'=>$id));

        $row=$stmt->setFetchMode(PDO::FETCH_ASSOC);

您不是在检查错误。


两个建议:


1) 您正在使用<?php echo $row['first_name'];?>. 如果您检查了结果集,您会发现其中有什么问题。只需使用 print_r() 等将结果输出到(错误命名的)$row 变量中。我相信你会看到哪里出了问题。


2) 我强烈建议反对使用 $_REQUEST。它很懒惰而且容易出错。您知道“customer_id”从何而来吗?会议?曲奇饼?邮政?还是得到?如果您通过 GET 传递信息 => 使用 GET


查看完整回答
反对 回复 2021-11-13
?
大话西游666

TA贡献1817条经验 获得超14个赞

我假设这customer_id是您数据库中的唯一键,并且数据库中的每个 id 只返回一行。那么,如何正确使用 PDO 语句:


$sql = "SELECT * FROM customers WHERE customer_id=:id";

//Prepare your SELECT statement.

$statement = $pdo->prepare($sql);

//The Primary Key of the row that we want to select.

$id = intval($_REQUEST['customer_id']);

//I highly recomment not to use $_REQUEST, use $_GET or even better $_POST


//Bind our value to the paramater :id.

$statement->bindValue(':id', $id);


//Execute our SELECT statement.

$statement->execute();


//Fetch the row.

$row = $statement->fetch(PDO::FETCH_ASSOC);


//If $row is FALSE, then no row was returned.

if($row === false){

    echo $id . ' not found!';

} else{

    echo 'Found: ' . $row['first_name'];

}

编辑 另外,像这样改变你的ajax请求:


$.ajax({

  url: 'getCustomerDetails.php',

  type: 'POST',

  data: {customer_id:uid}

})


查看完整回答
反对 回复 2021-11-13
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信