首页 > 解决方案 > 简单的 while 循环返回“调用未定义函数”错误

问题描述

我是 PHP 新手,正在寻找一些初学者帮助。我不明白为什么这个简单的 while 循环不起作用。我已经检查了各种变体的语法错误,但我认为情况并非如此。

错误说:

致命错误:未捕获的错误:调用 /opt/lampp/htdocs/basic-procedural-php-project/index.php:77 中未定义的函数 mysql_fetch_assoc() 堆栈跟踪:在 /opt/lampp/htdocs 中抛出 #0 {main} /basic-procedural-php-project/index.php 在第 77 行

代码如下:

<?php include 'db.php'; ?>

<?php
// Fetch data from db
$query = 'SELECT * FROM data';
$numbers = mysqli_query($con, $query);
?>

<?php while ($row = mysql_fetch_assoc($numbers)) : ?>
            <p>whatever <?php echo $row['t_name'] ?></p>
          <?php endwhile; ?>

数据库如下:

DB NAME: timesNumbers
DB TABLE NAME: data
COLUMNS: t_id, t_name, t_firstNo, t_secondNo

有人可以解释错误的含义,问题以及如何解决吗?我觉得这可能是我没有得到的基本东西。在这里感谢和帮助。

db.php 文件还包括:

<?php

// Connect
$con = mysqli_connect("localhost", "root", "", "timesNumbers");

// Test Connection
if (mysqli_connect_errno()) {
    echo 'Failed: '.mysqli_connect_error();
}

?>

标签: phpmysql

解决方案


您不能混合使用 mysql 和 mysqli 库/扩展。我猜你甚至没有安装 mysql 库/扩展,因为你得到了那个错误。

无论如何你都不应该使用它。坚持使用 mysqli 或 PDO。

要使用 mysqli 获取数据,请查看http://php.net/manual/en/mysqli-result.fetch-assoc.php上的手册

PDO 有我的偏好。

编辑:现在你已经提到 php 的版本是 7.1.9,可以肯定的是你没有安装 mysql 扩展,因为它在被弃用了很长时间后从 php 7 中删除。


推荐阅读