我是PHP的新手,正在寻找一些初学者的帮助。我不明白为什么这个简单的while循环不起作用。我已经检查了各种变化的语法错误,但事实并非如此。
错误提示:
致命错误:未捕获错误:调用/opt/lampp/htdocs/basic-procedural-php-project/index.php中的未定义函数mysql_fetch_assoc():77堆栈跟踪:#0 {main}抛出/ opt /第77行的lampp / htdocs / basic-procedural-php-project / index.php
代码如下:
<?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();
}
?>
答案 0 :(得分:1)
您不能混合使用mysql和mysqli库/扩展的用法。 我猜您甚至没有安装mysql库/扩展名,因为您收到该错误。
您无论如何都不应该使用它。坚持使用mysqli或PDO。
要使用mysqli获取数据,请查看http://php.net/manual/en/mysqli-result.fetch-assoc.php上的手册
我喜欢PDO。
编辑:现在您已经提到php的版本是7.1.9,可以肯定的是您已经安装了mysql扩展,因为它已被弃用了很长一段时间,因为它已从php 7中删除。