php - 简单的 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();
}
?>
解决方案
您不能混合使用 mysql 和 mysqli 库/扩展。我猜你甚至没有安装 mysql 库/扩展,因为你得到了那个错误。
无论如何你都不应该使用它。坚持使用 mysqli 或 PDO。
要使用 mysqli 获取数据,请查看http://php.net/manual/en/mysqli-result.fetch-assoc.php上的手册
PDO 有我的偏好。
编辑:现在你已经提到 php 的版本是 7.1.9,可以肯定的是你没有安装 mysql 扩展,因为它在被弃用了很长时间后从 php 7 中删除。
推荐阅读
- android - Android工作室:未找到变体
- python - 如何重命名排序列表中的文件?
- javascript - 替代向服务器端发送大量请求
- postgresql - 具有计数器或索引值的 Postgres JSONB_ARRAY_ELEMENTS
- postgresql - 具有计数器或索引值的 Postgres JSONB_ARRAY_ELEMENTS
- amazon-web-services - AWS Route53 托管区域创建时间
- eclipse-rcp - 试图将 rcp 应用程序转换为 log4j2 但 ibatise 和 DB 日志没有进入日志文件
- java - 从 IntelliJ 运行 Payara 服务器时出错,出现错误“错误:解析系统捆绑语句时出错”。
- java - 没有名称的分隔线标记器
- powerquery - Power Query 从更新的 csv 数据更新查询