当前位置:首页 > 云服务器

php怎么连接数据库_MySQL数据库连接的基础代码编写【说明】

游戏科技网2026年09月14日 23:41云服务器10
描述:推荐使用 PDO 或 mysqli 扩展连接 MySQL,mysql_connect() 在 PHP 7.0+ 已移除;PDO 需开启异常模式、密码特殊字符需 rawurlencode;mysqli 要显式设 utf8mb4 字符集;连接失败优先排查服务状态、用户权限、端口及扩展启用。PHP 连接…
推荐使用 PDO 或 mysqli 扩展连接 MySQL,mysql_connect() 在 PHP 7.0+ 已移除;PDO 需开启异常模式、密码特殊字符需 rawurlencode;mysqli 要显式设 utf8mb4 字符集;连接失败优先排查服务状态、用户权限、端口及扩展启用。

php怎么连接数据库_MySQL数据库连接的基础代码编写【说明】

PHP 连接 MySQL 数据库,推荐直接使用 PDOmysqli 扩展,mysql_connect() 等旧函数在 PHP 7.0+ 已被彻底移除,强行用会报 Fatal error: Uncaught Error: Call to undefined function mysql_connect()

用 PDO 连接 MySQL(推荐)

PDO 是 PHP 官方推荐的数据库访问抽象层,支持预处理、多数据库切换、异常捕获,代码更健壮。

  • 连接失败时默认静默,需手动开启 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  • localhost127.0.0.1 在某些配置下行为不同(如 Unix socket vs TCP),建议明确写 127.0.0.1 避免权限或连接超时问题
  • 密码为空或含特殊字符(如 @/)时,必须对 $passwordrawurlencode() 处理,否则 DSN 解析失败

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

$host = 127.0.0.1;

$port = 3306;

$dbname = testdb;

$username = root;

$password = p@ss/w0rd;

 

// 注意:密码含特殊字符时要 urlencode

$encoded_password = rawurlencode($password);

$dsn = "mysql:host=$host;port=$port;dbname=$dbname;charset=utf8mb4";

 

try {

    $pdo = new PDO($dsn, $username, $encoded_password, [

        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

        PDO::ATTR_EMULATE_PREPARES => false,

    ]);

} catch (PDOException $e) {

    die(连接失败: . $e->getMessage());

}

用 mysqli 连接 MySQL(面向对象方式)

如果项目已大量使用 mysqli,优先选面向对象写法,避免过程式函数(如 mysqli_connect())带来的作用域和错误处理混乱。

php怎么连接数据库_MySQL数据库连接的基础代码编写【说明】
word-document-organizer

智能整理Word文档,自动排版、生成目录、统一样式,支持学术/商务/极简模板。

下载
  • 连接后务必检查 $mysqli->connect_error,不能只靠返回值判断
  • 字符集必须显式设置为 utf8mb4(不是 utf8),否则 emoji 和部分生僻字会乱码或截断
  • 长连接(MYSQLI_CLIENT_FOUND_ROWS 等标志)一般不需要,除非有明确性能压测需求

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$host = 127.0.0.1;

$port = 3306;

$dbname = testdb;

$username = root;

$password = p@ss/w0rd;

 

$mysqli = new mysqli($host, $username, $password, $dbname, $port);

 

if ($mysqli->connect_error) {

    die(连接失败: . $mysqli->connect_error);

}

 

// 必须设置,且是 utf8mb4,不是 utf8

$mysqli->set_charset(utf8mb4);

常见连接失败原因与排查点

连不上不是代码写错,往往是环境或权限配置没到位。以下几项比改代码更关键:

立即学习PHP免费学习笔记(深入)”;

  • MySQL 服务是否真在运行?用 systemctl status mysql(Linux)或 brew services list | grep mysql(macOS)确认
  • 用户权限是否包含从当前 host(如 root@127.0.0.1)登录?执行 SELECT User, Host FROM mysql.user; 查看
  • 防火墙或云服务器安全组是否放行了 3306 端口?本地测试建议先关防火墙验证
  • PHP 是否启用了 pdo_mysqlmysqli 扩展?运行 php -m | grep -i mysql 检查
  • 错误日志里出现 Connection refused → MySQL 没启动或端口不对;出现 Access denied → 用户名/密码/Host 不匹配

真正卡住的地方,往往不在 new PDO() 那一行,而在 MySQL 的 user 表里少了一条 appuser@127.0.0.1 记录,或者 php.ini 里忘了开扩展。写完连接代码后,先盯住错误信息里的关键词,再查对应环节。

“php怎么连接数据库_MySQL数据库连接的基础代码编写【说明】” 的相关文章

5元云服务器:入门级新手首选

5元云服务器:入门级新手首选 我是一名刚毕业的大学生,对编程充满了热情,但现实总是骨感一些。刚踏入职场,我梦想着能独立开发一个网站或应用,却苦于没有足够的资源。买一台实体服务器太贵,租个虚拟空间又觉得…

6元服务器租用,高性价比VPS主机推荐

6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我…

2021年云服务器优惠套餐推荐

2021年云服务器优惠套餐推荐 嗨,朋友们!你是否曾经在深夜里,面对一堆代码和服务器错误,感叹说:“为什么我的项目老是卡顿?”如果是这样的话,那你可能正在寻找2021年云服务器优惠套餐的解决方案。作为…

云服务器市场增长

云服务器市场增长 大家好,作为一个每天依赖云服务器的开发者,我亲身感受到市场的飞速膨胀。想象一下,几年前我还得在办公室的老旧电脑前苦苦挣扎,处理数据时总是卡顿不堪,但现在,只需轻轻一点,就能在云端获得…

1元买走一台云服务器,这种天上掉馅饼的事存在吗?

1元买走一台云服务器,这种天上掉馅饼的事存在吗? 那天,我在咖啡馆里刷手机,偶然看到一个广告:“只需1元,就能买走一台高性能云服务器!容量无限,稳定快速,适合创业和学习。”我的心跳突然加速了。作为一个…

云服务器10元月:经济型服务价格新记录

云服务器10元/月:经济型服务价格新记录 最近,云服务器的价格被推向了一个新低,10元一个月的方案让许多人惊喜不已。这不仅仅是数字上的变化,更是科技服务普惠化的一个标志。云服务器作为一种基于云计算的虚…