非法字符串偏移量'name'错误

n53p2ov0  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(589)

我正试图通过这段代码访问数据库中的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'];
    }
}

?>
6jygbczu

6jygbczu1#

fetch_assoc() 仅获取一行-迭代此行将提供列值(单个字符串、数字…)。你试图进入 Name 索引,这将导致错误。
你需要使用 $product_array = $result->fetch_all(MYSQLI_ASSOC); 迭代所有结果。
也代替了 $product_array[$key]['Name'] 你可以用 $value['Name'] .

wztqucjr

wztqucjr2#

mysqli::fetch\u assoc不返回多维数组,而是从数据库返回一个2d行(仅一个),因此,如果您有以下字段/数据,例如;

name abc
date 01-01-2018

使用查询和fecth\u 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];
}

相关问题