Mac 系统下 MAMP PHP 连接 Mysql 无法访问问题解决方法

2015年6月8日23:49:41 发表评论 已收录

在学习后台增删改查时,用到MAMP 环境下 php页面连接本地mysql数据库 访问出错的情况,经过1个晚上的查阅资料,经历了各种坎坷磨难,终于在从入门到快要放弃之前,成功解决问题,特将解决经验记录下来,供大家借鉴。

一、问题描述

服务器环境:PHP 7.11  Mysql 5.6.35

通过本地服务器访问php页面,控制报错如下图:

500 (Internal Server Error)

Mac 系统下 MAMP PHP 连接 Mysql 无法访问问题解决方法

二、php 原始代码:

$con = mysql_connect("127.0.0.1","root","");
    if (!$con){
        die('Could not connect: ' . mysql_error());
    }
mysqli_select_db("test", $con);
$pageNum = $_GET['pageNum'];
$pageSize = $_GET['pageSize'];
$start=($pageNum-1)*$pageSize;
$sql="select *,(select count(*) from teacher) as total from teacher order by id desc limit $start , $pageSize ";
$result = mysql_query($sql);
$list = array();
$total = 0;
while($row = mysqli_fetch_array($result)){
    $item = array(
        'id' => $row['id'],
        'username' => $row['username'],
        'password' => $row['password'],
        'name' => $row['name'],
        'school' => $row['school'],
        'age' => intval($row['age']),
    );
    array_push($list,$item);
    $total = $row['total'];
}
echo json_encode(
    array(
        'list'=>$list,
        'pageSize'=>intval($pageSize),
        'pageNum'=>intval($pageNum),
        'total'=> intval($total)
    )
);
mysql_close($con);
usleep(300000);

三、问题说明:

此问题是由于php高版本已经不再支持 mysql_connect 这个方法来连接数据库了!

查阅了mysql官网,有这样一段说明:

本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLiPDO_MySQL 扩展来替换之。参见 MySQL:选择 API 指南以及相关 FAQ 以获取更多信息。用以替代本函数的有:

本文解决的方案采用的是 mysqli 以下就是解决后的访问数据库代码:

$_mysqli = new mysqli();   //创建一个mysqli对象(资源句柄)
$_mysqli -> connect('localhost','root','root','test',3306);  //连接数据库 主机 用户名 密码 数据库 端口号
$pageNum = $_GET['pageNum'];
$pageSize = $_GET['pageSize'];
$start=($pageNum-1)*$pageSize;
$sql="select *,(select count(*) from teacher) as total from teacher order by id desc limit $start , $pageSize ";
$result = $_mysqli->query($sql);    //此处有修改 
$list = array();
$total = 0;
while($row = mysqli_fetch_array($result)){
    $item = array(
        'id' => $row['id'],
        'username' => $row['username'],
        'password' => $row['password'],
        'name' => $row['name'],
        'school' => $row['school'],
        'age' => intval($row['age']),
    );
    array_push($list,$item);
    $total = $row['total'];
}
echo json_encode(
    array(
        'list'=>$list,
        'pageSize'=>intval($pageSize),
        'pageNum'=>intval($pageNum),
        'total'=> intval($total)
    )
);
$_mysqli->close($con);   //此处有修改!!
usleep(300000);

结束语:至此,问题已成功解决,虽然解决的过程很艰辛,但很欣慰自己能够成功解决~

weinxin
我的微信
爱生活、爱学习的小伙伴可以通过扫一扫二维码添加我的个人微信一起交流!
青青子衿

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: