{"id":3093,"date":"2025-03-22T00:05:08","date_gmt":"2025-03-21T16:05:08","guid":{"rendered":"https:\/\/www.laixuexila.com\/?p=3093"},"modified":"2025-03-22T00:05:08","modified_gmt":"2025-03-21T16:05:08","slug":"php-%e5%88%9b%e5%bb%ba-mysql-%e8%a1%a8%ef%bc%88create-table%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.laixuexila.com\/index.php\/2025\/03\/22\/php-%e5%88%9b%e5%bb%ba-mysql-%e8%a1%a8%ef%bc%88create-table%ef%bc%89\/","title":{"rendered":"PHP \u521b\u5efa MySQL \u8868\uff08Create Table\uff09"},"content":{"rendered":"\n<p>\u5728 PHP \u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 <strong>MySQLi<\/strong> \u6216 <strong>PDO<\/strong> \u8fde\u63a5 MySQL \u5e76\u521b\u5efa\u6570\u636e\u5e93\u8868\u3002\u672c\u6559\u7a0b\u5c06\u5168\u9762\u89e3\u6790\u521b\u5efa MySQL \u8868\u7684\u65b9\u5f0f\uff0c\u5305\u62ec <strong>\u5b8c\u6574\u4ee3\u7801\u793a\u4f8b\u3001\u5e38\u89c1\u9519\u8bef\u53ca\u89e3\u51b3\u65b9\u6848<\/strong>\uff0c\u5e76\u63d0\u4f9b <strong>\u6700\u4f73\u5b9e\u8df5<\/strong>\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. \u4f7f\u7528 MySQLi \u521b\u5efa\u8868<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.1 \u8fc7\u7a0b\u5316\u98ce\u683c\uff08MySQLi Procedural\uff09<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$servername = \"localhost\";\n$username = \"root\";\n$password = \"\";\n$dbname = \"my_database\"; \/\/ \u4f60\u8981\u64cd\u4f5c\u7684\u6570\u636e\u5e93\n\n\/\/ \u8fde\u63a5 MySQL\n$conn = mysqli_connect($servername, $username, $password, $dbname);\n\n\/\/ \u68c0\u6d4b\u8fde\u63a5\nif (!$conn) {\n    die(\"\u8fde\u63a5\u5931\u8d25: \" . mysqli_connect_error());\n}\n\n\/\/ \u521b\u5efa\u6570\u636e\u8868 SQL\n$sql = \"CREATE TABLE users (\n    id INT(11) AUTO_INCREMENT PRIMARY KEY,\n    username VARCHAR(50) NOT NULL UNIQUE,\n    email VARCHAR(100) NOT NULL,\n    password VARCHAR(255) NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)\";\n\nif (mysqli_query($conn, $sql)) {\n    echo \"\u6570\u636e\u8868 users \u521b\u5efa\u6210\u529f\";\n} else {\n    echo \"\u9519\u8bef: \" . mysqli_error($conn);\n}\n\n\/\/ \u5173\u95ed\u8fde\u63a5\nmysqli_close($conn);\n?&gt;<\/code><\/pre>\n\n\n\n<p>\ud83d\udccc <strong>\u89e3\u6790<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8fde\u63a5 MySQL <strong>\u6307\u5b9a\u6570\u636e\u5e93<\/strong> <code>my_database<\/code>\u3002<\/li>\n\n\n\n<li><code>CREATE TABLE users (...)<\/code> \u5b9a\u4e49\u7528\u6237\u8868\u7ed3\u6784\uff1a<\/li>\n\n\n\n<li><code>id<\/code>\uff1a\u81ea\u589e\u4e3b\u952e (<code>AUTO_INCREMENT PRIMARY KEY<\/code>)\u3002<\/li>\n\n\n\n<li><code>username<\/code>\uff1a\u552f\u4e00\u7ea6\u675f (<code>UNIQUE<\/code>)\uff0c\u4e0d\u80fd\u4e3a\u7a7a (<code>NOT NULL<\/code>)\u3002<\/li>\n\n\n\n<li><code>email<\/code>\uff1a\u5b58\u50a8\u7528\u6237\u90ae\u7bb1\uff0c\u4e0d\u80fd\u91cd\u590d (<code>NOT NULL<\/code>)\u3002<\/li>\n\n\n\n<li><code>password<\/code>\uff1a\u5b58\u50a8\u7528\u6237\u5bc6\u7801\uff08\u5efa\u8bae\u52a0\u5bc6\uff09\u3002<\/li>\n\n\n\n<li><code>created_at<\/code>\uff1a\u5b58\u50a8\u7528\u6237\u521b\u5efa\u65f6\u95f4\uff0c\u9ed8\u8ba4\u5f53\u524d\u65f6\u95f4\u6233 (<code>TIMESTAMP DEFAULT CURRENT_TIMESTAMP<\/code>)\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.2 \u9762\u5411\u5bf9\u8c61\u98ce\u683c\uff08MySQLi OOP\uff09<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$servername = \"localhost\";\n$username = \"root\";\n$password = \"\";\n$dbname = \"my_database\";\n\n\/\/ \u521b\u5efa\u8fde\u63a5\n$conn = new mysqli($servername, $username, $password, $dbname);\n\n\/\/ \u68c0\u6d4b\u8fde\u63a5\nif ($conn-&gt;connect_error) {\n    die(\"\u8fde\u63a5\u5931\u8d25: \" . $conn-&gt;connect_error);\n}\n\n\/\/ \u521b\u5efa\u8868\n$sql = \"CREATE TABLE users (\n    id INT(11) AUTO_INCREMENT PRIMARY KEY,\n    username VARCHAR(50) NOT NULL UNIQUE,\n    email VARCHAR(100) NOT NULL,\n    password VARCHAR(255) NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)\";\n\nif ($conn-&gt;query($sql) === TRUE) {\n    echo \"\u6570\u636e\u8868 users \u521b\u5efa\u6210\u529f\";\n} else {\n    echo \"\u9519\u8bef: \" . $conn-&gt;error;\n}\n\n\/\/ \u5173\u95ed\u8fde\u63a5\n$conn-&gt;close();\n?&gt;<\/code><\/pre>\n\n\n\n<p>\ud83d\udccc <strong>\u9762\u5411\u5bf9\u8c61\u98ce\u683c\u7684\u533a\u522b<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f7f\u7528 <code>new mysqli()<\/code> \u521b\u5efa\u8fde\u63a5\u3002<\/li>\n\n\n\n<li>\u7528 <code>$conn->query($sql)<\/code> \u6267\u884c SQL \u8bed\u53e5\u3002<\/li>\n\n\n\n<li>\u4f7f\u7528 <code>$conn->error<\/code> \u83b7\u53d6\u9519\u8bef\u4fe1\u606f\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. \u4f7f\u7528 PDO \u521b\u5efa\u8868\uff08\u63a8\u8350\uff09<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$servername = \"localhost\";\n$username = \"root\";\n$password = \"\";\n$dbname = \"my_database\";\n\ntry {\n    \/\/ \u8fde\u63a5 MySQL\n    $pdo = new PDO(\"mysql:host=$servername;dbname=$dbname\", $username, $password);\n    $pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n    \/\/ \u521b\u5efa\u8868\n    $sql = \"CREATE TABLE users (\n        id INT(11) AUTO_INCREMENT PRIMARY KEY,\n        username VARCHAR(50) NOT NULL UNIQUE,\n        email VARCHAR(100) NOT NULL,\n        password VARCHAR(255) NOT NULL,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n    )\";\n\n    $pdo-&gt;exec($sql);\n    echo \"\u6570\u636e\u8868 users \u521b\u5efa\u6210\u529f\";\n} catch (PDOException $e) {\n    echo \"\u9519\u8bef: \" . $e-&gt;getMessage();\n}\n\n\/\/ \u5173\u95ed\u8fde\u63a5\n$pdo = null;\n?&gt;<\/code><\/pre>\n\n\n\n<p>\ud83d\udccc <strong>PDO \u65b9\u5f0f\u7684\u4f18\u52bf<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u652f\u6301 <strong>\u591a\u79cd\u6570\u636e\u5e93<\/strong>\uff08MySQL\u3001PostgreSQL\u3001SQLite\uff09\u3002<\/li>\n\n\n\n<li>\u9ed8\u8ba4\u5f00\u542f <strong>\u5f02\u5e38\u5904\u7406<\/strong> (<code>PDO::ERRMODE_EXCEPTION<\/code>)\uff0c\u66f4\u6613\u8c03\u8bd5\u3002<\/li>\n\n\n\n<li><strong>\u66f4\u5b89\u5168<\/strong>\uff0c\u9002\u7528\u4e8e\u751f\u4ea7\u73af\u5883\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. \u8fd0\u884c <code>CREATE TABLE<\/code> \u53ef\u80fd\u9047\u5230\u7684\u9519\u8bef\u53ca\u89e3\u51b3\u65b9\u6848<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.1 &#8220;No database selected&#8221;<\/strong><\/h3>\n\n\n\n<p><strong>\u9519\u8bef\u539f\u56e0<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8fde\u63a5 MySQL \u65f6\u672a\u6307\u5b9a\u6570\u636e\u5e93\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u51b3\u65b9\u6848<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5728 <code>mysqli_connect()<\/code> \u6216 <code>new PDO()<\/code> \u65f6 <strong>\u6307\u5b9a\u6570\u636e\u5e93<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  $dbname = \"my_database\"; \n  mysqli_connect($servername, $username, $password, $dbname);<\/code><\/pre>\n\n\n\n<p>\u6216<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  new PDO(\"mysql:host=$servername;dbname=$dbname\", $username, $password);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.2 &#8220;Table already exists&#8221;<\/strong><\/h3>\n\n\n\n<p><strong>\u9519\u8bef\u539f\u56e0<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8868\u5df2\u7ecf\u5b58\u5728\uff0c\u5c1d\u8bd5\u91cd\u590d\u521b\u5efa\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u51b3\u65b9\u6848<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f7f\u7528 <code>IF NOT EXISTS<\/code> \u907f\u514d\u91cd\u590d\u521b\u5efa\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  $sql = \"CREATE TABLE IF NOT EXISTS users (...)\";<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.3 &#8220;Access denied for user&#8221;<\/strong><\/h3>\n\n\n\n<p><strong>\u9519\u8bef\u539f\u56e0<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7528\u6237\u6ca1\u6709\u6743\u9650\u521b\u5efa\u8868\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u51b3\u65b9\u6848<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8d4b\u4e88\u6743\u9650<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  GRANT ALL PRIVILEGES ON my_database.* TO 'root'@'localhost';\n  FLUSH PRIVILEGES;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u68c0\u67e5\u7528\u6237\u6743\u9650<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  SHOW GRANTS FOR 'root'@'localhost';<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. MySQL \u6570\u636e\u8868\u7ba1\u7406<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u64cd\u4f5c<\/th><th>SQL \u8bed\u53e5<\/th><\/tr><\/thead><tbody><tr><td>\u663e\u793a\u6240\u6709\u8868<\/td><td><code>SHOW TABLES;<\/code><\/td><\/tr><tr><td>\u67e5\u770b\u8868\u7ed3\u6784<\/td><td><code>DESC users;<\/code><\/td><\/tr><tr><td>\u5220\u9664\u8868<\/td><td><code>DROP TABLE users;<\/code><\/td><\/tr><tr><td>\u4fee\u6539\u8868<\/td><td><code>ALTER TABLE users ADD COLUMN age INT(3);<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\ud83d\udccc <strong>\u63a8\u8350\u9605\u8bfb<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/book.mysqli.php\">PHP MySQLi \u5b98\u65b9\u6587\u6863<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/book.pdo.php\">PHP PDO \u5b98\u65b9\u6587\u6863<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/create-table.html\">MySQL CREATE TABLE<\/a><\/li>\n<\/ul>\n\n\n\n<p>\u66f4\u591a\u8be6\u7ec6\u5185\u5bb9\u8bf7\u5173\u6ce8\u5176\u4ed6\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728 PHP \u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 MySQLi \u6216 PDO \u8fde\u63a5 MySQL \u5e76\u521b\u5efa\u6570\u636e\u5e93\u8868\u3002\u672c\u6559\u7a0b\u5c06\u5168\u9762\u89e3\u6790\u521b\u5efa [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3094,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80],"tags":[],"class_list":["post-3093","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"_links":{"self":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/3093","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/comments?post=3093"}],"version-history":[{"count":1,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/3093\/revisions"}],"predecessor-version":[{"id":3095,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/3093\/revisions\/3095"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/media\/3094"}],"wp:attachment":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/media?parent=3093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/categories?post=3093"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/tags?post=3093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}