致命错误:未识别的方法 mysqli:fetch_array() [重复]

Posted

技术标签:

【中文标题】致命错误:未识别的方法 mysqli:fetch_array() [重复]【英文标题】:Fatal Error: unidentified method mysqli:fetch_array() [duplicate] 【发布时间】:2014-09-13 23:59:00 【问题描述】:

我正在编写一个时钟程序,但我遇到了一个在代码中似乎找不到的错误。查看代码后,我没有发现它说有一个错误。我也对 php Code Checker 进行了检查,但没有找到。这是我正在使用的代码。我修改了敏感信息。我做错了什么,我该如何解决。我在此处关注第三个答案的示例: display data from SQL database into php/ html table

这是输出:

致命错误:在第 31 行的文件路径中调用未定义的方法 mysqli::fetch_array()

打卡ID时间打卡类型组部门备注 和代码

<head>
    <title>View My Punches</title>
    <body bgcolor="#9966FF">
    <link rel="icon" type="image/ico" href="path to favicon"/>
</head>

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
define('DB_NAME', 'name');
define('DB_USER', 'user');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'host');


$link = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if ($link->connect_errno > 0)
    die('Could not connect: ' .connect_error());

$userid_value = $_POST['userid'];
$table = "tc_".$userid_value;
$checkusersql = "SELECT * FROM tc_users WHERE userid = '$userid_value'";
$usercheck = $link->query($checkusersql);
$punchessql = "SELECT * FROM $table";
$result = $link->query($punchessql);
if ($usercheck->num_rows == 0) 
    echo "Sorry, " . $userid_value . " is not a valid user ID. Please try again.";
else 
    echo "<table>";
    echo "<tr><td>Punch ID</td><td>Time</td><td>Punch Type</td><td>Group</td><td>Department</td><td>Notes</td></tr>";
    while ($row = $link->fetch_array($result))
    
        echo "<tr><td>" . $row['id'] . "</td><td>" . $row['time'] . "</td></tr>" . $row['punchtype'] . "</td><td>" . $row['groupname'] . "</td><td>" . $row['dept'] . "</td><td>" . $row['notes'] . "</td><td>";
    
    echo "</table>";


?>

【问题讨论】:

我建议您阅读这篇文章,了解如何使您的查询免受 SQL 注入的影响 ~ php.net/manual/mysqli.quickstart.prepared-statements.php。您在使用未定义函数connect_error() 时也存在潜在错误。您可能打算使用$link-&gt;connect_error。另外,每个用户一张桌子?那是非常糟糕的架构设计 是的,我知道这是一个糟糕的架构设计,但我只是认为从长远来看这将是最简单的,因为我们希望能够在拳头和所有这些东西之间提取报告,所以为了让以后做数学更容易,我们决定这样做。感谢您对连接错误的评论! 【参考方案1】:

$result-&gt;fetch_array()代替$link-&gt;fetch_array($result)

有效的可选mysqli_result::fetch_array() 参数是MYSQLI_ASSOCMYSQLI_NUMMYSQLI_BOTH(默认),以确定值数组应该以关联格式还是数字格式返回。

【讨论】:

【参考方案2】:

使用$result 而不是$link

提问前请阅读documentation。并阅读错误消息。我花了 5 秒钟才弄清楚问题出在哪里,这告诉我你应该能够自己解决。

【讨论】:

以上是关于致命错误:未识别的方法 mysqli:fetch_array() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

win10系统出现多个以太网未识别的网络解决方法

使用 map() 在 lm 中未识别的因素

我的笔记本的本地连接有两个网络,一个网络二,一个未识别的网络,该怎么办??

VMnet1和VMnet8 未识别的网络的解决方法

server2012未识别的网络

我的电脑连接到了netcore这个路由器显示未识别的网络是怎么回事