You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Array to String conversion错误及MySQL查询PHP代码问题

修复PHP代码中的Array to String Conversion错误

你遇到的这个错误很典型——问题出在你访问数组元素的语法上!你把取值操作写成了赋值操作:

错误的写法:

echo $row=["id"]; // 这是在给$row赋值一个新数组,而不是取$row里的id值

当你执行$row=["id"]时,其实是创建了一个只包含"id"元素的新数组并覆盖了原本从数据库获取的$row数据,随后echo这个数组时,PHP就会抛出"Array to String conversion"错误,因为echo只能输出字符串或标量类型的值。

正确的写法应该是用方括号直接访问数组元素(去掉等号):

echo $row["id"]; // 从$row数组中取出"id"对应的字段值

修复后的完整代码

<?php 
$status = $_GET['status']; 
if ($status == "disp") { 
    // 添加数据库连接失败的判断,方便排查问题
    $link = mysqli_connect("localhost", "root", ""); 
    if (!$link) {
        die("数据库连接失败: " . mysqli_connect_error());
    }
    mysqli_select_db($link, "mainstock"); 
    $res = mysqli_query($link, "SELECT * FROM 1st_year"); 

    echo "<table border='1'>"; // 加border让表格结构更清晰
    // 推荐用mysqli_fetch_assoc,只返回关联数组,避免索引数组冗余
    while ($row = mysqli_fetch_assoc($res)) { 
        echo "<tr>";
            echo "<td>{$row['id']}</td>";
            echo "<td>{$row['BooksName']}</td>";
            echo "<td>{$row['Avaibality']}</td>"; // 小提示:单词拼写应为Availability,可同步修正数据库字段名
            echo "<td>{$row['Price']}</td>";
            echo "<td>{$row['Quantity']}</td>";
        echo "</tr>";
    }; 
    echo "</table>";

    mysqli_close($link); // 养成手动关闭数据库连接的好习惯
} 
?>

额外优化建议

  • 使用mysqli_fetch_assoc()替代mysqli_fetch_array():前者只返回以字段名为键的关联数组,避免了索引数组的冗余,更贴合你通过字段名取值的需求
  • 添加连接失败处理:避免连接出错时出现空白页面,能快速定位问题
  • 表格添加border属性:默认表格无边框,添加后数据展示更直观

内容的提问来源于stack exchange,提问作者Imran S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 13:32:31