【发布时间】:2021-03-23 23:31:05
【问题描述】:
我有以下代码:
function qSELECT($query, $object = NULL){
global $link;
$result = mysqli_query($link, $query);
$return = [];
if($result){
$num = mysqli_num_rows($result);
for ($i=0; $i<$num; $i++){
if(!is_null($object)){
$row = mysqli_fetch_object($result);
}else{
$row = mysqli_fetch_array($result);
}
$return[$i]=$row;
}
}
return $return;
}
function getAll($table){
$query = "SELECT * FROM ".$table;
$result = qSELECT($query);
return $result;
}
还有另一个文件,它调用 getALL 来显示一个包含表中值的表。
<?php
$Draseis = getAll("Draseis");
if($Draseis) foreach ($Draseis as $Draseis):
?>
<tr>
<td><?php echo $Draseis['title']?></td>
<td><?php echo $Draseis['title']?></td>
<td><?php echo $Draseis['text']?></td>
<td><?php echo $Draseis['image1']?></td>
<td><?php echo $Draseis['image2']?></td>
<td><?php echo $Draseis['image3']?></td>
<td><?php echo $Draseis['image4']?></td>
<td><?php echo $Draseis['image5']?></td>
<td><a href="edit-draseis.php?act=edit&id=<?php echo $Draseis['id']?>"><i class="glyphicon glyphicon-edit"></i></a></td>
<td><a href="save.php?act=delete&id=<?php echo $Draseis['id']?>&cat=Draseis" onclick="return navConfirm(this.href);"><i class="glyphicon glyphicon-trash"></i></a></td>
</tr>
<?php endforeach; ?>
在 PHP 7.0 中,当我回显它时,qSELECT 中的返回值 ($Draseis) 是一个“数组”,一切正常意味着显示所有 7 条记录。
然而,在 PHP 7.1 中,当我回显返回值 ($Draseis) 时,我得到 7 x A 作为结果“AAAAAAA”并且不显示任何记录。
知道为什么吗?
【问题讨论】:
-
不是数组吗?如果你试图回显一个数组,你应该会得到一个错误。你看到了什么错误?
-
那是我的问题。没有。当我在 7.0 中回显数组时,我得到文本“Array”,在 7.1 中,我得到“AAAAAAA”,如果我只回显 $Draseis['0],我得到 A。所以每个 A 都是一条记录,因为在 7.1 中有 7 条记录数据库。我的问题是,在 PHP 7.1 中,它返回 A 而不是我稍后可以使用 $Draseis['title'] 处理的行。