找回密码
 立即注册
搜索
热搜: 生活 中国

PHP 创建 MySQL 表

[复制链接]
admin 发表于 2020-10-10 23:48:19 | 显示全部楼层 |阅读模式
  1. PHP 创建 MySQL 表
  2. 一个数据表有一个唯一名称,并有行和列组成。

  3. 使用 MySQLi 和 PDO 创建 MySQL 表
  4. CREATE TABLE 语句用于创建 MySQL 表。

  5. 创建表前,我们需要使用 use myDB 来选择要操作的数据库:

  6. use myDB;
  7. 我们将创建一个名为 "MyGuests" 的表,有 5 个列: "id", "firstname", "lastname", "email" 和 "reg_date":

  8. CREATE TABLE MyGuests (
  9.     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  10.     firstname VARCHAR(30) NOT NULL,
  11.     lastname VARCHAR(30) NOT NULL,
  12.     email VARCHAR(50),
  13.     reg_date TIMESTAMP
  14. )
  15. 上表中的注意事项:

  16. 数据类型指定列可以存储什么类型的数据。完整的数据类型请参考我们的 数据类型参考手册。

  17. 在设置了数据类型后,你可以为每个列指定其他选项的属性:

  18. NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的。
  19. DEFAULT value - 设置默认值
  20. UNSIGNED - 使用无符号数值类型,0 及正数
  21. AUTO INCREMENT - 设置 MySQL 字段的值在新增记录时每次自动增长 1
  22. PRIMARY KEY - 设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY 设置为 ID 数值,与 AUTO_INCREMENT 一起使用。
  23. 每个表都应该有一个主键(本列为 "id" 列),主键必须包含唯一的值。

  24. 以下实例展示了如何在 PHP 中创建表:

  25. 实例 (MySQLi - 面向对象)
  26. <?php
  27. $servername = "localhost";
  28. $username = "username";
  29. $password = "password";
  30. $dbname = "myDB";

  31. // 创建连接
  32. $conn = new mysqli($servername, $username, $password, $dbname);
  33. // 检测连接
  34. if ($conn->connect_error) {
  35.     die("连接失败: " . $conn->connect_error);
  36. }

  37. // 使用 sql 创建数据表
  38. $sql = "CREATE TABLE MyGuests (
  39. id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  40. firstname VARCHAR(30) NOT NULL,
  41. lastname VARCHAR(30) NOT NULL,
  42. email VARCHAR(50),
  43. reg_date TIMESTAMP
  44. )";

  45. if ($conn->query($sql) === TRUE) {
  46.     echo "Table MyGuests created successfully";
  47. } else {
  48.     echo "创建数据表错误: " . $conn->error;
  49. }

  50. $conn->close();
  51. ?>


  52. 实例 (MySQLi - 面向过程)
  53. <?php
  54. $servername = "localhost";
  55. $username = "username";
  56. $password = "password";
  57. $dbname = "myDB";

  58. // 创建连接
  59. $conn = mysqli_connect($servername, $username, $password, $dbname);
  60. // 检测连接
  61. if (!$conn) {
  62.     die("连接失败: " . mysqli_connect_error());
  63. }

  64. // 使用 sql 创建数据表
  65. $sql = "CREATE TABLE MyGuests (
  66. id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  67. firstname VARCHAR(30) NOT NULL,
  68. lastname VARCHAR(30) NOT NULL,
  69. email VARCHAR(50),
  70. reg_date TIMESTAMP
  71. )";

  72. if (mysqli_query($conn, $sql)) {
  73.     echo "数据表 MyGuests 创建成功";
  74. } else {
  75.     echo "创建数据表错误: " . mysqli_error($conn);
  76. }

  77. mysqli_close($conn);
  78. ?>


  79. 实例 (PDO)
  80. <?php
  81. $servername = "localhost";
  82. $username = "username";
  83. $password = "password";
  84. $dbname = "myDBPDO";

  85. try {
  86.     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  87.     // 设置 PDO 错误模式,用于抛出异常
  88.     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  89.     // 使用 sql 创建数据表
  90.     $sql = "CREATE TABLE MyGuests (
  91.     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  92.     firstname VARCHAR(30) NOT NULL,
  93.     lastname VARCHAR(30) NOT NULL,
  94.     email VARCHAR(50),
  95.     reg_date TIMESTAMP
  96.     )";

  97.     // 使用 exec() ,没有结果返回
  98.     $conn->exec($sql);
  99.     echo "数据表 MyGuests 创建成功";
  100. }
  101. catch(PDOException $e)
  102. {
  103.     echo $sql . "<br>" . $e->getMessage();
  104. }

  105. $conn = null;
  106. ?>
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生活导航|生活导航 ( 新ICP备12003026-1号 )

GMT+8, 2024-3-28 18:05 , Processed in 0.125965 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表