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

从WooCommerce数据库查询数据时出现mysqli_fetch_assoc错误

问题分析与解决方案

嘿,这个错误其实很好定位——你在调用结果集方法的时候混淆了mysqli的面向对象风格和过程化风格语法!

错误原因

从报错信息Call to undefined method mysqli_result::mysqli_fetch_assoc()可以看出,你试图把过程化的函数mysqli_fetch_assoc()当作mysqli_result对象的方法来调用,但这个方法根本不存在:

  • 过程化风格里,应该写成mysqli_fetch_assoc($result)
  • 面向对象风格里,应该调用对象的fetch_assoc()方法,也就是$result->fetch_assoc()

你的代码里用了$result->mysqli_fetch_assoc(),这是两种风格的错误混搭,所以才会触发“未定义方法”的致命错误。

修正后的代码

把循环里的方法调用改成正确的面向对象写法:

function prntPage() { 
    //Connect is defined somewhere else 
    $query = "SELECT * FROM `wp_woocommerce_order_items`"; 
    $result = mysqli_query($conn,$query); 
    while($row = $result->fetch_assoc()) { // 这里改成fetch_assoc()
        echo "id: " . $row["order_item_id"]. " - Product Name: " . $row["order_item_name"]. " - Order_ID" . $row["order_id"]. "<br>"; 
    } 
}

额外建议(WordPress最佳实践)

在WordPress插件开发中,不推荐直接使用原生mysqli操作数据库,WordPress内置了$wpdb类,它已经帮你处理了表前缀适配、数据安全(比如转义)等问题,用起来更安全也更灵活。比如你的查询可以改成这样:

function prntPage() { 
    global $wpdb;
    $table_name = $wpdb->prefix . 'woocommerce_order_items'; // 自动适配表前缀
    $results = $wpdb->get_results( "SELECT * FROM $table_name", ARRAY_A );
    
    foreach($results as $row) {
        echo "id: " . $row["order_item_id"]. " - Product Name: " . $row["order_item_name"]. " - Order_ID" . $row["order_id"]. "<br>"; 
    } 
}

这样即使你的WordPress站点用了自定义表前缀(不是默认的wp_),代码也能正常工作,同时$wpdb会自动帮你处理SQL注入风险。

错误信息回顾:
Fatal error: Uncaught Error: Call to undefined method mysqli_result::mysqli_fetch_assoc() in C:\xampp\htdocs\ExamenProject\wp-content\plugins\drukkebaasjes-sizedata\drukkebaasjes-sizedata.php:54 Stack trace: #0 C:\xampp\htdocs\ExamenProject\wp-includes\class-wp-hook.php(286): prntPage('') #1 C:\xampp\htdocs\ExamenProject\wp-includes\class-wp-hook.php(310): WP_Hook->apply_filters('', Array) #2 C:\xampp\htdocs\ExamenProject\wp-includes\plugin.php(453): WP_Hook->do_action(Array) #3 C:\xampp\htdocs\ExamenProject\wp-admin\admin.php(224): do_action('toplevel_page_p...') #4 {main} thrown in C:\xampp\htdocs\ExamenProject\wp-content\plugins\drukkebaasjes-sizedata\drukkebaasjes-sizedata.php on line 54

内容的提问来源于stack exchange,提问作者AquaProgramming

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:43:15