你好, 今天我在我的应用程序中遇到了非常奇怪的问题。我正在尝试创建用于编辑数据库记录的函数,但在更新之前我需要获取旧记录。但这里的问题是当我回显我的查询并复制时 - 将它粘贴到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);
}
答案 0 :(得分:1)
根据您的代码,有三种可能的原因。
而不是$ rowList1 = mysqli_fetch_array($ sqltran1)
使用
$ rowList1 = mysqli_fetch_array($ sqltran1,MYSQLI_BOTH);
您的变量命名...使用$ 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'],
];