[英]Illegal string offset 'Name' Error
我正在尝试通过此代码访问数据库中的名称字段。 但是每次它都会给我“非法字符串偏移错误”。 我不知道product_array第二个括号内需要的正确语法。
$qry = "SELECT * FROM Products ORDER BY Product_Id ASC";
$result = mysqli_query($con,$qry);
$product_array = (array) $result->fetch_assoc();
mysqli_close($con);
if (!empty($product_array)) {
foreach($product_array as $key=>$value){
echo $product_array[$key]['Name'];
}
}
?>
fetch_assoc()
仅获取一行-迭代该行会为您提供列值(单字符串,数字等)。 并且您尝试访问此类值上的Name
索引,这会导致错误。
您需要使用$product_array = $result->fetch_all(MYSQLI_ASSOC);
以获得所有结果。
同样,可以使用$value['Name']
代替$product_array[$key]['Name']
$value['Name']
。
mysqli :: fetch_assoc不会从数据库返回多维数组,而是返回二维行(仅一个),因此,例如,如果您具有以下字段/数据;
name abc
date 01-01-2018
使用查询和fecth_assoc将返回一个数组,例如;
[ 'name' => 'abc', 'date' => '01-01-2018' ]
因此,使用foreach,您可以执行以下操作:
foreach ($product_array as $key => $value)
{
// Example printing; name = abc
echo "{$key} = {$value}";
// Example prining; abc
echo $product_array[$key];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.