欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP——MySQL笔记(3)之创建数据库表

程序员文章站 2024-03-21 23:14:40
...

三、创建MySQL表

一个数据表有一个唯一的名称,是一张二维表,由行和列组成。

创建MySQL表有3中方式

  • mysqli面向对象创建表
  • mysqli面向过程创建表
  • PDO对象创建表

注意:在创建表之前,要先声明使用哪个数据库,对哪个数据库进行操作。这里需要用到use关键字,格式:use 数据库名,例如use user。

表结构:
创建一个学生信息表,名为studentinfo,有6个字段,字段名为:studentid,studentname,studentsex,birthday,phone,classid

create table studentinfo(
		studentid char(11) unsigned not null primary key,
		studentname char(30) not null,
		studentsex char(4)	not null,
		birthday TIMESTAMP,
		phone	char(30),
		classid int unsigned null
)

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

1)NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的。
2)DEFAULT value - 设置默认值
3)UNSIGNED - 使用无符号数值类型,0 及正数
4)AUTO INCREMENT - 设置 MySQL 字段的值在新增记录时每次自动增长 1
5)PRIMARY KEY - 设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY 设置为 ID 数值,与 AUTO_INCREMENT 一起使用。设置主键之后要设置是否为空,或设置int类型自动增长AUTO_INCREMENT。

1.mysqli面向对象创建表

代码如下:

<?php
header("content-type:text/html;charset=utf-8");
header("content-type:text/html;charset=utf-8");//使用utf-8编码
$servername="localhost";//表示数据库服务器主机名称
$username="root";//表示数据库用户登录的用户名称
$password="123456";//表示数据库用户登录的用户密码

//连接服务器 创建一个数据库用户对象
$conn = new mysqli($servername,$username,$password);
if($conn->connect_error)
{
	die("用户登录失败,错误:".$conn->connect_error."<br>";
}
else
{
	echo "用户登录成功...<br>";
}
//使用声明user数据库
$dbsql="use user";
if($conn->query($dbsql)===true)
{
	echo "正在使用user数据库..<br>";
}
else{
	echo "使用user数据库失败,错误提示:".$conn->error."<br>";
}

//使用sql语句 创建表
$sql="create table studentinfo(
		studentid char(11) not null primary key,
		studentname char(30) not null,
		studentsex char(4)	not null,
		birthday TIMESTAMP,
		phone	char(30) null,
		classid int unsigned null
)"; 
//创建表
if($conn->query($sql)===true)
{
	echo "创建表成功..<br>";
}
else{
	echo "创建表失败,错误提示:".$conn->error."<br>";
}


//关闭数据库连接
$conn->close();
?>

代码解析:
1)代码执行之后,如下图:
PHP——MySQL笔记(3)之创建数据库表
2)数据库连接错误信息,用connect_error变量返回;数据库查询语句错误信息用error变量返回。

2.mysqli面向过程创建表

<?php
header("content-type:text/html;charset=utf-8");
header("content-type:text/html;charset=utf-8");//使用utf-8编码
$servername="localhost";//表示数据库服务器主机名称
$username="root";//表示数据库用户登录的用户名称
$password="123456";//表示数据库用户登录的用户密码

//连接服务器 创建一个数据库用户对象
$conn = mysqli_connect($servername,$username,$password);
if(!$conn)
{
	die("用户登录失败,错误:".mysqli_connect_error()."<br>";
}
else
{
	echo "用户登录成功...<br>";
}
//使用声明user数据库
$dbsql="use user";
if(mysqli_query($conn,$dbsql)===true)
{
	echo "正在使用user数据库..<br>";
}
else{
	echo "使用user数据库失败,错误提示:".mysqli_error()."<br>";
}

//使用sql语句 创建表
$sql="create table studentinfo(
		studentid char(11) not null primary key,
		studentname char(30) not null,
		studentsex char(4)	not null,
		birthday TIMESTAMP,
		phone	char(30) null,
		classid int unsigned null
)"; 
//创建表
if(mysqli_query($conn,$sql)===true)
{
	echo "创建表成功..<br>";
}
else{
	echo "创建表失败,错误提示:".mysqli_error()."<br>";
}
//关闭数据库连接
$conn->close();
?>

代码解析:
1)代码解析与mysqli面向对象类似。不同的是,连接数据库错误时,用mysqli_connect_error()函数返回错误信息。
2)查询错误时,用mysqli_error()函数返回错误信息。
3)查询语句用mysqli_query()函数。

3.PDO对象创建表

<?php
header("content-type:text/html;charset=utf-8");
header("content-type:text/html;charset=utf-8");//使用utf-8编码
$servername="localhost";//表示数据库服务器主机名称
$username="root";//表示数据库用户登录的用户名称
$password="123456";//表示数据库用户登录的用户密码

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式,用于抛出异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 //使用user数据库
 $conn->exec("use user");
 
    // 使用 sql 创建数据表
    $sql = "create table studentinfo(
		studentid char(11) not null primary key,
		studentname char(30) not null,
		studentsex char(4)	not null,
		birthday TIMESTAMP,
		phone	char(30) null,
		classid int unsigned null
)"; 
 
    // 使用 exec() ,没有结果返回 
    $conn->exec($sql);
    echo "数据表 studentinfo 创建成功";
}
catch(PDOException $e)
{
    echo $sql . "<br>" . $e->getMessage();
}
 
$conn = null;
?>

代码解析:
代码解析如上面mysqli的代码解析类似。