PHP数据库Word下载.docx
《PHP数据库Word下载.docx》由会员分享,可在线阅读,更多相关《PHP数据库Word下载.docx(22页珍藏版)》请在冰点文库上搜索。
![PHP数据库Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/4cb5a597-ef53-4c38-8abe-d7bd4115e505/4cb5a597-ef53-4c38-8abe-d7bd4115e5051.gif)
Stavanger
上面的表含有三个记录(每个记录是一个人)和四个列(LastName,FirstName,Address以及City)。
查询
查询是一种询问或请求。
通过MySQL,我们可以向数据库查询具体的信息,并得到返回的记录集。
请看下面的查询:
SELECTLastNameFROMPersons
上面的查询选取了Persons表中LastName列的所有数据,并返回类似这样的记录集:
免费的MySQL数据库通常是通过PHP来使用的。
连接到一个MySQL数据库
在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。
在PHP中,这个任务通过mysql_connect()函数完成。
语法
mysql_connect(servername,username,password);
参数
描述
servername
可选。
规定要连接的服务器。
默认是"
localhost:
3306"
username
规定登录所使用的用户名。
默认值是拥有服务器进程的用户的名称。
password
规定登录所用的密码。
注释:
虽然还存在其他的参数,但上面列出了最重要的参数。
请访问W3School提供的PHPMySQL参考手册,获得更多的细节信息。
例子
在下面的例子中,我们在一个变量中($con)存放了在脚本中供稍后使用的连接。
如果连接失败,将执行"
die"
部分:
<
?
php
$con=mysql_connect("
localhost"
"
peter"
abc123"
);
if(!
$con)
{
die('
Couldnotconnect:
'
.mysql_error());
}
//somecode
>
关闭连接
脚本一结束,就会关闭连接。
如需提前关闭连接,请使用mysql_close()函数。
mysql_close($con);
数据库存有一个或多个表。
创建数据库
CREATEDATABASE语句用于在MySQL中创建数据库。
CREATEDATABASEdatabase_name
为了让PHP执行上面的语句,我们必须使用mysql_query()函数。
此函数用于向MySQL连接发送查询或命令。
在下面的例子中,我们创建了一个名为"
my_db"
的数据库:
if(mysql_query("
CREATEDATABASEmy_db"
$con))
echo"
Databasecreated"
;
else
Errorcreatingdatabase:
"
.mysql_error();
创建表
CREATETABLE用于在MySQL中创建数据库表。
CREATETABLEtable_name
(
column_name1data_type,
column_name2data_type,
column_name3data_type,
.......
)
为了执行此命令,我必须向mysql_query()函数添加CREATETABLE语句。
下面的例子展示了如何创建一个名为"
的表,此表有三列。
列名是"
FirstName"
LastName"
Age"
:
//Createdatabase
//Createtableinmy_dbdatabase
mysql_select_db("
$con);
$sql="
CREATETABLEPersons
FirstNamevarchar(15),
LastNamevarchar(15),
Ageint
)"
mysql_query($sql,$con);
重要事项:
在创建表之前,必须首先选择数据库。
通过mysql_select_db()函数选取数据库。
当您创建varchar类型的数据库字段时,必须规定该字段的最大长度,例如:
varchar(15)。
MySQL数据类型
下面的可使用的各种MySQL数据类型:
数值类型
∙int(size)
∙smallint(size)
∙tinyint(size)
∙mediumint(size)
∙bigint(size)
仅支持整数。
在size参数中规定数字的最大值。
∙decimal(size,d)
∙double(size,d)
∙float(size,d)
支持带有小数的数字。
在d参数中规定小数点右侧的数字的最大值。
文本数据类型
char(size)
支持固定长度的字符串。
(可包含字母、数字以及特殊符号)。
在size参数中规定固定长度。
varchar(size)
支持可变长度的字符串。
在size参数中规定最大长度。
tinytext
支持可变长度的字符串,最大长度是255个字符。
∙text
∙blob
支持可变长度的字符串,最大长度是65535个字符。
∙mediumtext
∙mediumblob
支持可变长度的字符串,最大长度是16777215个字符。
∙longtext
∙longblob
支持可变长度的字符串,最大长度是4294967295个字符。
日期数据类型
∙date(yyyy-mm-dd)
∙datetime(yyyy-mm-ddhh:
mm:
ss)
∙timestamp(yyyymmddhhmmss)
∙time(hh:
支持日期或时间
杂项数据类型
enum(value1,value2,ect)
ENUM是ENUMERATED列表的缩写。
可以在括号中存放最多65535个值。
set
SET与ENUM相似。
但是,SET可拥有最多64个列表项目,并可存放不止一个choice
主键和自动递增字段
每个表都应有一个主键字段。
主键用于对表中的行进行唯一标识。
每个主键值在表中必须是唯一的。
此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。
主键字段永远要被编入索引。
这条规则没有例外。
你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。
下面的例子把personID字段设置为主键字段。
主键字段通常是ID号,且通常使用AUTO_INCREMENT设置。
AUTO_INCREMENT会在新纪录被添加时逐一增加该字段的值。
要确保主键字段不为空,我们必须向该字段添加NOTNULL设置。
personIDintNOTNULLAUTO_INCREMENT,
PRIMARYKEY(personID),
INSERTINTO语句用于向数据库表中插入新纪录。
向数据库表插入数据
INSERTINTO语句用于向数据库表添加新纪录。
INSERTINTOtable_name
VALUES(value1,value2,....)
您还可以规定希望在其中插入数据的列:
INSERTINTOtable_name(column1,column2,...)
SQL语句对大小写不敏感。
INSERTINTO与insertinto相同。
为了让PHP执行该语句,我们必须使用mysql_query()函数。
该函数用于向MySQL连接发送查询或命令。
在前面的章节,我们创建了一个名为"
的表,有三个列:
Firstname"
Lastname"
我们将在本例中使用同样的表。
下面的例子向"
表添加了两个新纪录:
mysql_query("
INSERTINTOPersons(FirstName,LastName,Age)
VALUES('
Peter'
'
Griffin'
35'
Glenn'
Quagmire'
33'
把来自表单的数据插入数据库
现在,我们创建一个HTML表单,这个表单可把新纪录插入"
表。
这是这个HTML表单:
html>
body>
formaction="
insert.php"
method="
post"
Firstname:
<
inputtype="
text"
name="
firstname"
/>
Lastname:
lastname"
Age:
age"
submit"
/form>
/body>
/html>
当用户点击上例中HTML表单中的提交按钮时,表单数据被发送到"
文件连接数据库,并通过$_POST变量从表单取回值。
然后,mysql_query()函数执行INSERTINTO语句,一条新的记录会添加到数据库表中。
下面是"
页面的代码:
$sql="
INSERTINTOPersons(FirstName,LastName,Age)
VALUES
('
$_POST[firstname]'
'
$_POST[lastname]'
$_POST[age]'
mysql_query($sql,$con))
Error:
echo"
1recordadded"
mysql_close($con)
SELECT语句用于从数据库中选取数据。
从数据库表中选取数据
SELECTcolumn_name(s)FROMtable_name
SELECT与select等效。
该函数用于向MySQL发送查询或命令。
下面的例子选取存储在"
表中的所有数据(*字符选取表中所有数据):
$result=mysql_query("
SELECT*FROMPersons"
while($row=mysql_fetch_array($result))
echo$row['
FirstName'
]."
.$row['
LastName'
];
br/>
上面这个例子在$result变量中存放由mysql_query()函数返回的数据。
接下来,我们使用mysql_fetch_array()函数以数组的形式从记录集返回第一行。
每个随后对mysql_fetch_array()函数的调用都会返回记录集中的下一行。
whileloop语句会循环记录集中的所有记录。
为了输出每行的值,我们使用了PHP的$row变量($row['
]和$row['
])。
以上代码的输出:
PeterGriffin
GlennQuagmire
在HTML表格中显示结果
下面的例子选取的数据与上面的例子相同,但是将把数据显示在一个HTML表格中:
tableborder='
1'
tr>
th>
Firstname<
/th>
Lastname<
/tr>
td>
/td>
/table>
Firstname
Lastname
Glenn
Quagmire
Peter
Griffin
如需选取匹配指定条件的数据,请向SELECT语句添加WHERE子句。
WHERE子句
SELECTcolumnFROMtable
WHEREcolumnoperatorvalue
下面的运算符可与WHERE子句一起使用:
运算符
说明
=
等于
!
不等于
大于
小于
大于或等于
小于或等于
BETWEEN
介于一个包含范围内
LIKE
搜索匹配的模式
WHERE与where等效。
该函数用于向SQL连接发送查询和命令。
下面的例子将从"
表中选取所有FirstName='
的行:
SELECT*FROMPersons
WHEREFirstName='
ORDERBY关键词用于对记录集中的数据进行排序。
ORDERBY关键词
SELECTcolumn_name(s)
FROMtable_name
ORDERBYcolumn_name
SQL对大小写不敏感。
ORDERBY与orderby等效。
下面的例子选取"
表中的存储的所有数据,并根据"
列对结果进行排序:
SELECT*FROMPersonsORDERBYage"
Age'
GlennQuagmire33
PeterGriffin35
升序或降序的排序
如果您使用ORDERBY关键词,记录集的排序顺序默认是升序(1在9之前,"
a"
在"
p"
之前)。
请使用DESC关键词来设定降序排序(9在1之前,"
之前):
ORDERBYcolumn_nameDESC
根据两列进行排序
可以根据多个列进行排序。
当按照多个列进行排序时,只有第一列相同时才使用第二列:
ORDERBYcolumn_name1,column_name2
UPDATE语句用于中修改数据库表中的数据。
更新数据库中的数据
UPDATE语句用于在数据库表中修改数据。
UPDATEtable_name
SETcolumn_name=new_value
WHEREcolumn_name=some_value
UPDATE与update等效。
为了让PHP执行上面的语句,我们必须使用mysql_query(函数。
稍早时,我们在本教程中创建了一个名为"
的表。
它看起来类似这样:
Age
35
33
下面的例子更新"
表的一些数据:
UPDATEPersonsSETAge='
36'
WHEREFirstName='
ANDLastName='
在这次更新后,"
表格是这样的:
LastNam