php要连接docker中运行的mysql是不能用localhost 或 127.0.0.1来连接的,因为每个docker运行容器的localhost 和127.0.0.1都是自己容器本身,不是mysql容器,需要修改成母机 IP,或者是mysql容器名称

$dbms='mysql';     //数据库类型
$host='xy_mysql'; //数据库主机名,在docker中,xy_mysql是我的mysql容器的别名
$dbName='test';    //使用的数据库
$user='root';        //数据库连接用户名
$pass='xy123456';   //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
try {
    $con = new PDO($dsn, $user, $pass); //初始化一个PDO对象
    $con->query('SET NAMES UTF8');
    $res =  $con->query('select * from user');
    while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
        echo "id:{$row['id']} name:{$row['name']}";
    }
} catch (PDOException $e) {
     echo '错误原因:'  . $e->getMessage();
}

参考:
https://blog.csdn.net/weixin_41282397/article/details/82994370

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐