我正试图通过这段代码访问数据库中的name字段。但每次它给我“非法字符串偏移错误”。我不知道产品数组的第二个括号中需要的正确语法。
$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'];
}
}
?>
2条答案
按热度按时间6jygbczu1#
fetch_assoc()
仅获取一行-迭代此行将提供列值(单个字符串、数字…)。你试图进入Name
索引,这将导致错误。你需要使用
$product_array = $result->fetch_all(MYSQLI_ASSOC);
迭代所有结果。也代替了
$product_array[$key]['Name']
你可以用$value['Name']
.wztqucjr2#
mysqli::fetch\u assoc不返回多维数组,而是从数据库返回一个2d行(仅一个),因此,如果您有以下字段/数据,例如;
使用查询和fecth\u assoc将返回一个数组,例如;
因此,使用foreach,您可以执行以下操作:;