文章目录
问题1:Call to undefined function mysql_connect()
这是最开始的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>从数据库的表中获取信息</title>
</head>
<body>
<center>
<?php
$link = mysqli_connect("localhost", "root", "19990210"); //主机名,用户名,密码 //php5.5已废除mysql扩展,需要改为mysqli或PDO
if (!$link) {
echo '数据库连接失败';
} else {
echo "数据库连接ok";
mysql_select_db("sale",$link); //选择数据库
$sql = "select * from sales"; //查询语句
$query = mysql_query($sql, $link); //发送一条 MySQL 查询
}
?>
</body>
</html>
但是网页报错
后来发现是数据库端口问题(曾经改过)
解决办法:在localhost后加上端口号
mysqli_connect("localhost:3307", "root", "19990210")
问题:2:未捕获的错误----调用未定义函数mysql_select_db()
上述修改完后,又有一个问题要解决:
后来发现是不能混合匹配mysql_*和mysqli_*功能。
解决方案:将代码中所有mysql_的地方改成mysqli_
mysqli_select_db("sale",$link); //选择数据库
$sql = "select * from sales"; //查询语句
$query = mysqli_query($sql, $link); //发送一条 MySQL 查询
问题3:警告----Warning: mysqli_select_db() expects parameter 1 to be mysqli
很好,好不容易解决了上面的,又来一个警告:
(第28行是自己添加的几行代码,文末代码会给出来)
(问题行数跟代码对不上是因为当时截图后又有修改调整,但不影响理解)
查了查, 主要原因时mysql_select_db()与mysqli_select_db()的参数位置刚好相反。
解决办法:把参数位置调换。
mysqli_select_db( $link,"sale"); //选择数据库
$sql = "select * from sales"; //查询语句
$query = mysqli_query($link, $sql); //发送一条 MySQL 查询
mysql_select_db()正在被逐渐抛弃,使用的话,可以成功连接,但是会warning。
最终结果
现在已经可以了。
贴上最终代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>从数据库的表中获取信息</title>
</head>
<body>
<center>
<?php
$link = mysqli_connect("localhost:3307", "root", "19990210"); //主机名,用户名,密码 //php5.5已废除mysql扩展,需要改为mysqli或PDO
if (!$link) {
echo '数据库连接失败';
mysql_error() or die("Unable to connect to MySQL");
echo "";
} else {
mysqli_select_db( $link,"sale"); //选择数据库
$sql = "select * from sales"; //查询语句
$query = mysqli_query($link, $sql); //发送一条 MySQL 查询
}
?>
<h2>信息显示如下表:</h2>
<?php
echo "<table border=1><tr><td>name</td><td>sex</td><td>salary</td>";
while ($arr = mysqli_fetch_array($query)) {
echo "<tr>";
echo "<td>" . $arr["name"] . "</td>";
echo "<td>" . $arr[1] . "</td>";
echo "<td>" . $arr[2] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($link);//关闭数据库连接
?>
以上为个人情况,不一定适用所有人