PHP MySQL 数据库
1、创建数据库链接
注释:要想链接到一个数据库,首先,必须创建到达数据库的连接,创建函数:mysql_connect()
语法:mysql_connect(servername,username,password);
相关参数:
1、servername : 可选。规定要连接的服务器。默认是 "localhost:3306"。
2、username : 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。
3、password : 可选。规定登录所用的密码。默认是 ""。
<?php
$con = mysql_connect("localhost","peter","abc123"); //目标服务器,用户名,密码
if (!$con) {
die('Could not connect: ' . mysql_error()); //如果链接失败,则知心话 die() 部分
}
//脚本一结束,就会关闭连接。如需提前关闭连接,请使用 mysql_close() 函数。
mysql_close($con);
?>
2、创建数据库
CREATE DATABASE 语句用于在 MySQL 中创建数据库。
语法:CREATE DATABASE database_name
为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。此函数用于向 MySQL 连接发送查询或命令。
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { // 创建了一个名为 "my_db" 的数据库
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_close($con); //关闭链接
?>
3、创建表
CREATE TABLE 用于在 MySQL 中创建数据库表。
语法:
CREATE TABLE table_name (
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)
注释:为了执行此命令,我必须向 mysql_query() 函数添加 CREATE TABLE 语句。
<?php
$con = mysql_connect("localhost","peter","abc123"); //创建链接
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { //创建名为 my_db 的数据库
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_select_db("my_db", $con); //通过 mysql_select_db() 函数选取目标数据库。
$sql = "CREATE TABLE Persons ( //创建表
FirstName varchar(15), //必须规定字段的最大长度 (15)
LastName varchar(15), //必须规定字段的最大长度 (15)
Age int
)";
mysql_query($sql,$con); //为了执行创建命令,必须向 mysql_query() 函数添加 CREATE TABLE 语句。
mysql_close($con); //关闭链接
?>
注释:当您创建 varchar 类型的数据库字段时,必须规定该字段的最大长度,例如:varchar(15)。
4、主键字段 和 自动递增字段
每一个表都应该有一个主键字段。
主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。
主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。
主键字段永远要被编入索引。
必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。
//主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。
//AUTO_INCREMENT 会在新记录被添加时逐一增加该字段的值。
//要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。
$sql = "CREATE TABLE Persons (
personID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(personID), //把 personID 字段设置为主键字段。
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);
5、向数据库表插入数据
INSERT INTO 语句用于向数据库表添加新记录。
语法:
INSERT INTO table_name (相关参数一,相关参数二,...)
VALUES (value1, value2,....)
注释:SQL 语句对大小写不敏感。INSERT INTO 与 insert into 相同。
<?php
$con = mysql_connect("localhost","peter","abc123"); //创建数据库链接
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { //创建名为 my_db 的数据库
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_select_db("my_db", $con); //通过 mysql_select_db() 函数选取目标数据库。
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) //向Persons 的表中插入数据
VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) //向Persons 的表中插入数据
VALUES ('Glenn', 'Quagmire', '33')");
mysql_close($con); //关闭数据库链接
?>
为了让 PHP 执行该语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 连接发送查询或命令。
6、将表单中的数据插入数据库
表单:
<html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php" 文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。
"insert.php" 页面的代码如下:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { //创建名为 my_db 的数据库
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_select_db("my_db", $con); //选定目标数据库
$sql="INSERT INTO Persons (FirstName, LastName, Age) //插入数据
VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
7、从数据库中选取数据
SELECT 语句用于从数据库中选取数据。
语法:SELECT column_name(s) FROM table_name
注释:SQL 语句对大小写不敏感。SELECT 与 select 等效。
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");
while($row = mysql_fetch_array($result)) {
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br />";
}
mysql_close($con);
?>