You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器环境下PHP访问MySQL执行查询失败问题求助

问题定位

你遇到的问题核心是PHP代码的拼写错误,和GCP环境、Docker配置无关,具体错误点如下:

  1. 数据库名变量拼写错误
    代码第4行定义数据库名时变量名写为$databse(缺失字母a),但第6行数据库连接时传入的是$database,该变量未定义,相当于连接时没有指定目标数据库,自然无法识别库里的表。
  2. SQL执行函数调用错误
    代码第12行执行查询时写为$mysqli_query($conn, $sql),mysqli_query是PHP内置函数,前面多余的$会被识别为可变函数调用,因为对应变量未定义,所以调用失败返回布尔值false,触发后续mysqli_num_rows的参数类型报错。
  3. 可选配置修正:你的docker-compose中phpMyAdmin服务的PMA_HOST配置为mysql,但MySQL服务的名称是db,当前能正常访问属于巧合,建议修改为PMA_HOST: db避免后续容器重建后无法连接phpMyAdmin。

修复方案

将db.php代码替换为如下内容:

<?php
   $servername = "db";
   $username = "php";
   $password = "php";
   $database = "assignment_four_data";
   // Create connection
   $conn = mysqli_connect($servername, $username, $password, $database);
   if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
   }
   $sql = 'SELECT * FROM Users';
   $result = mysqli_query($conn, $sql);
   if (!$result) {
      // 排查问题时可以打开下面这行打印具体SQL错误
      // echo "SQL错误: " . mysqli_error($conn);
      printf("false");
   } else {
      printf("Selected returned %d rows. \n", mysqli_num_rows($result));
   }
?>

修改完成后执行docker-compose restart myphp重启PHP服务即可恢复正常。


内容的提问来源于stack exchange,提问作者Mully5474

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:09:03