document.writeln('');
当前位置:首页 > 云服务器

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

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

PHP 连接 MySQL 并创建表,现在应该用 mysqli 或 PDO,mysql_* 函数早已被移除(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

编写健壮的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创建表操作【基础】” 的相关文章

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

6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我知道,服务器租用是必需的。我开始在网上搜索,关键词就是“6元服务器”,想找一个便宜又稳定的方案。 一开始,我以为6元服务器太便宜了,可能不靠谱。但经过一番比较,我发现确实有一些服务商提供这样的选项。这…

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

盘点最新优惠 云服务器网站推荐 探盘最新优惠 云服务器网站推荐 云计算技术的迅猛发展,使得云服务器成为企业和个人开发者不可或缺的基础设施。云服务器,作为一种基于虚拟化技术的计算资源,允许用户按需获取计算能力、存储和网络资源,极大地提升了IT部署的灵活性和成本效益。近年来,随着数字化转型的加速,云服务器市场迎来了爆发式增长。根据Gartner的最新报告,全球公有云服务市场规模在2023年达到了497…

实惠低价云服务器f2g评测

实惠低价云服务器f2g评测 实惠低价云服务器F2G评测 随着云计算技术的快速发展,云服务器已经成为企业和个人开发者的重要选择。相比传统的物理服务器,云服务器在灵活性、可扩展性和成本上具有显著优势。然而,对于一些初创企业或个人开发者来说,选择一款性价比高、价格实惠的云服务器尤为重要。本文将对目前市场上较为热门的“实惠低价云服务器F2G”进行深入评测,从性能、稳定性、适用场景等多个维度进行分析,帮助用…

10Mbps云服务器实战指南

10Mbps云服务器实战指南 在当前数字化转型的大背景下,云服务器已成为企业信息化建设的重要基础设施。本文将围绕10Mbps云服务器的选购指南、配置优化、常见问题解决方案以及性能监控等方面,提供实用的建议和操作步骤,帮助用户高效部署并充分利用这一资源。 一、选购指南:如何根据业务需求选择合适的10Mbps云服务器? 1. 了解10Mbps带宽的实际应用 10Mbps云服务器适用于中小型企业网站、开…

云服务器特惠:选购与使用实战攻略

云服务器特惠:选购与使用实战攻略 嗨,大家好!我是小李,一个刚起步的创业公司老板。去年,我们团队开发了一个简单的网站,用来卖一些手工艺品。起初,一切都风平浪静,网站访问量不高,一台便宜的共享主机就能应付。但随着产品越来越受欢迎,我们的订单量直线上升,网站开始频繁卡顿,甚至偶尔崩溃。用户抱怨说,打开页面慢得让人等得心急。这让我意识到,我们需要升级服务器了。 那段时间,我像个热锅上的蚂蚁,到处找解决方…

(html)如何发布_发布HTML文件到网络的方法【网络】

(html)如何发布_发布HTML文件到网络的方法【网络】

可通过四种方式将HTML文件部署为公开网站:一、GitHub Pages免费托管;二、云存储服务(如阿里云OSS)启用静态网站托管;三、VPS配置Nginx/Apache服务器;四、Netlify/Vercel无服务器快速部署。 如果您已创建好一个 HTML 文件,但希望他人能通过互联网访问它,则需要将该文件部署到可公开访问的服务器上。以下是实现此目标的多种方法: 一、使用 GitHub Pa…