无法使用mysqli从数据库中获取记录

时间:2017-12-06 06:39:40

标签: php mysqli

你好, 今天我在我的应用程序中遇到了非常奇怪的问题。我正在尝试创建用于编辑数据库记录的函数,但在更新之前我需要获取旧记录。但这里的问题是当我回显我的查询并复制时 - 将它粘贴到phpmyadmin它返回我想要的数据,但当我将这些数据提取到我的数组时,它显示我的null数组。我不知道后面发生了什么。这是第一次这个问题到了。

这是我的代码

if($_SERVER['REQUEST_METHOD']=='POST'){

    $id = $_POST['Id'];

          $ChargesSql="SELECT * FROM billing_charges WHERE charge_id='$id'";
          //echo $ChargesSql; <-- copy paste into phpmyadmin it return data
          $sqltran1 = mysqli_query($con,$ChargesSql) or die(mysqli_error($con));

         $arrVal1 = array();
          $j=1;
          while ($rowList1 = mysqli_fetch_array($sqltran1)) {
         //  var_dump ($rowList);    <-- return null              
                         $name1 = [
                                 'num' => $j,
                                 'charge_id' => $rowList['charge_id'],
                                 'charge_title'=> $rowList['charge_title'],
                                 'charge_amt'=> $rowList['charge_amt'],
                           ];       

                             array_push($arrVal1, $name1);  
             $j++;          
          }
               echo  json_encode($arrVal1);
    //mysqli_close($con);

    }

2 个答案:

答案 0 :(得分:1)

根据您的代码,有三种可能的原因。

  1. 如果您从$ id = $ _POST [&#39; Id&#39;]收到的ID为空,则会导致查询返回空结果
  2. 而不是$ rowList1 = mysqli_fetch_array($ sqltran1) 使用
    $ rowList1 = mysqli_fetch_array($ sqltran1,MYSQLI_BOTH);

  3. 您的变量命名...使用$ rowList而不是$ rowList1

    if($_SERVER['REQUEST_METHOD']=='POST'){
    
        if(isset($_POST['Id'])){
    
            $id = $_POST['Id'];
    
            $ChargesSql="SELECT * FROM billing_charges WHERE charge_id='$id'";
    
              //echo $ChargesSql; <-- copy paste into phpmyadmin it return data
    
              $sqltran1 = mysqli_query($con,$ChargesSql) or die(mysqli_error($con));
    
              $arrVal1 = array();
    
              $j=1;
    
              while ($rowList = mysqli_fetch_array($sqltran1, MYSQLI_BOTH)) {
             //var_dump ($rowList);    <-- return null              
                 $name1 = [
                 'num' => $j,
                 'charge_id' => $rowList['charge_id'],
                 'charge_title'=> $rowList['charge_title'],
                 'charge_amt'=> $rowList['charge_amt'],
                 ];       
    
                 array_push($arrVal1, $name1);  
                 $j++;          
              }
                   echo  json_encode($arrVal1);
        //mysqli_close($con);
        }
    }
    

答案 1 :(得分:-1)

您的拼写错误将rowList更改为rowList1

 while ($rowList1 = mysqli_fetch_array($sqltran1)) {
         //  var_dump ($rowList);    <-- return null    
               $name1 = [
                             'num' => $j,
                             'charge_id' => $rowList1 ['charge_id'],//in your code rowList change it to rowList1
                             'charge_title'=> $rowList1 ['charge_title'],
                             'charge_amt'=> $rowList1 ['charge_amt'],
                       ];