记录PHP连接数据库错误及解决过程

问题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);//关闭数据库连接
?>

在这里插入图片描述

以上为个人情况,不一定适用所有人


  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值