Docker问题使用PHP连接到MySQL

Docker问题使用PHP连接到MySQL,php,mysql,docker,pdo,Php,Mysql,Docker,Pdo,我从docker开始,希望使用PDO驱动程序连接到我的数据库。 但不幸的是,我的页面上出现了一个错误,我不知道如何解决它。 你能帮我吗 这是我的错误: 致命错误:未捕获的PDO异常:PDO::_uuu构造(): php_网络_getaddresses:getaddrinfo失败:没有关联的地址 使用主机名 这是我的index.php: <?php $db = new PDO('mysql:host=db:3306;dbname:DockerProject', "root", "ro

我从docker开始,希望使用PDO驱动程序连接到我的数据库。 但不幸的是,我的页面上出现了一个错误,我不知道如何解决它。 你能帮我吗

这是我的错误:

致命错误:未捕获的PDO异常:PDO::_uuu构造(): php_网络_getaddresses:getaddrinfo失败:没有关联的地址 使用主机名

这是我的index.php:

<?php
    $db = new PDO('mysql:host=db:3306;dbname:DockerProject', "root", "root");
?>
这是我的docker-compose.yaml:

version: '3'

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: DockerProject
      MYSQL_USER: devuser
      MYSQL_PASSWORD: devpass
    ports:
      - "3306:3306"
  web:
    image: php_pdo:latest
    container_name: php_web
    depends_on:
      - db
    volumes:
      - ./php/:/var/www/html/
    ports:
      - "8100:80"
    stdin_open: true
    tty: true
  myadmin:
    image: phpmyadmin/phpmyadmin
    ports:
        - "8080:80"
    links:
        - db:db
定义为

如果需要明确定义端口,请使用:

$db = new PDO('mysql:host=db;port=3306;dbname=DockerProject', "root", "root");

另外,不确定为什么
dbname:DockerProject
可以正常工作,因为正确的语法是
dbname=DockerProject

port
在dsn字符串中是一个单独的选项
$db = new PDO('mysql:host=db;dbname=DockerProject', "root", "root");
$db = new PDO('mysql:host=db;port=3306;dbname=DockerProject', "root", "root");