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

PHP怎样连接MySQL并创建表_PHP连接MySQL创建表操作【基础】

游戏科技网2026年09月14日 22:19云服务器10
描述:应使用mysqli或PDO连接MySQL并创建表,因mysql_*函数在PHP 7.0+已移除;需显式检查连接与查询结果,字符集推荐utf8mb4;PDO建议启用异常模式并设置DSN charset;注意MySQL 8.0认证插件兼容性及权限、字符集一致性问题。PHP 连接 MySQL 并创建表,现…
应使用mysqli或PDO连接MySQL并创建表,因mysql_*函数在PHP 7.0+已移除;需显式检查连接与查询结果,字符集推荐utf8mb4;PDO建议启用异常模式并设置DSN charset;注意MySQL 8.0认证插件兼容性及权限、字符集一致性问题。

PHP怎样连接MySQL并创建表_PHP连接MySQL创建表操作【基础】

PHP 连接 MySQL 并创建表,现在应该用 mysqliPDOmysql_* 函数早已被移除(PHP 7.0+ 完全不可用),硬写会直接报 Fatal error: Uncaught Error: Call to undefined function mysql_connect()

用 mysqli_connect() 建连 + mysqli_query() 建表

这是最直白的面向过程写法,适合快速验证或小脚本。注意:必须显式检查连接和查询是否成功,否则失败时页面可能空白。

  • mysqli_connect() 第四个参数(数据库名)可为空,建表前不指定库也行
  • 建表 SQL 必须用 USE database_name 或在表名前加 database_name.table_name
  • 字符集建议显式设为 utf8mb4,避免 emoji 和生僻字乱码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<?php

$host = localhost;

$user = root;

$pass = ;

$db   = testdb;

 

$conn = mysqli_connect($host, $user, $pass, $db);

if (!$conn) {

    die(连接失败: . mysqli_connect_error());

}

 

$sql = "CREATE TABLE IF NOT EXISTS users (

    id INT AUTO_INCREMENT PRIMARY KEY,

    name VARCHAR(50) NOT NULL,

    email VARCHAR(100) UNIQUE

) CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";

 

if (mysqli_query($conn, $sql)) {

    echo "表创建成功";

} else {

    echo "建表失败: " . mysqli_error($conn);

}

 

mysqli_close($conn);

?>

用 PDO 连接并启用异常模式

PDO 更现代、支持预处理、跨数据库迁移成本低。关键点是开启 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,否则 PDO::exec() 失败只会返回 false,不抛异常,容易漏错。

PHP怎样连接MySQL并创建表_PHP连接MySQL创建表操作【基础】
PHP

编写健壮的PHP代码,规避类型转换陷阱、数组怪癖及常见安全漏洞。

下载
  • DSN 中的 charset=utf8mb4 是必需参数,只靠 SET NAMES 不保险
  • PDO::ATTR_DEFAULT_FETCH_MODE 可选,但设成 PDO::FETCH_ASSOC 能避免数字索引混淆
  • 建表语句里不要用反引号包裹关键词(如 `order`),优先改字段名,比逃逸更可靠

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<?php

$dsn = mysql:host=localhost;dbname=testdb;charset=utf8mb4;

$user = root;

$pass = ;

 

try {

    $pdo = new PDO($dsn, $user, $pass, [

        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC

    ]);

 

    $sql = "CREATE TABLE IF NOT EXISTS products (

        id INT AUTO_INCREMENT PRIMARY KEY,

        title VARCHAR(200) NOT NULL,

        price DECIMAL(10,2) DEFAULT 0.00

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";

 

    $pdo->exec($sql);

    echo "products 表已就绪";

} catch (PDOException $e) {

    echo "操作失败: " . $e->getMessage();

}

?>

常见错误与绕不开的细节

不是语法对就能跑通。本地开发环境(如 XAMPP/MAMP)默认 root 无密码,但 Docker 或云服务器上往往有强密码策略;MySQL 8.0+ 默认认证插件是 caching_sha2_password,老版 PHP 可能连不上。

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

  • 报错 Authentication plugin caching_sha2_password cannot be loaded:进 MySQL 执行 ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY your_password;
  • 报错 Access denied for user:确认用户有 CREATE 权限,不是只给了 SELECT
  • 执行多次建表脚本却提示 Table xxx already exists:SQL 里没加 IF NOT EXISTS,或者用了 DROP TABLE 但没做存在性判断
  • 插入中文变问号:连接层、表结构、客户端三处字符集必须都是 utf8mb4,缺一不可

真正卡住人的往往不是“怎么写”,而是“为什么连不上”“为什么建了却查不到数据”——先确认 mysqli_connect_error()PDOException 报的具体内容,再查权限、字符集、认证方式,比盲目改代码快得多。

“PHP怎样连接MySQL并创建表_PHP连接MySQL创建表操作【基础】” 的相关文章

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

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

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

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

云服务器市场增长

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

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

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

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

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

盘点最新优惠 云服务器网站推荐

盘点最新优惠 云服务器网站推荐 探盘最新优惠 云服务器网站推荐 云计算技术的迅猛发展,使得云服务器成为企业和个人开发者不可或缺的基础设施。云服务器,作为一种基于虚拟化技术的计算资源,允许用户按需获取计…