1、php数据库一、PHP MySQL 简介MySQL 是最流行的开源数据库服务器。什么是 MySQL?MySQL 是一种数据库。数据库定义了存储信息的结构。在数据库中,存在着一些表。类似 HTML 表格,数据库表含有行、列以及单元。在分类存储信息时,数据库非常有用。一个公司的数据库可能拥有这些表:Employees, Products, Customers 以及 Orders。数据库表数据库通常包含一个或多个表。每个表都一个名称(比如 Customers 或 Orders)。每个表包含带有数据的记录(行)。下面是一个名为 Persons 的表的例子:LastNameFirstNameAddres
2、sCityHansenOlaTimoteivn 10SandnesSvendsonToveBorgvn 23SandnesPettersenKariStorgt 20Stavanger上面的表含有三个记录(每个记录是一个人)和四个列(LastName, FirstName, Address 以及 City)。查询查询是一种询问或请求。通过 MySQL,我们可以向数据库查询具体的信息,并得到返回的记录集。请看下面的查询:SELECT LastName FROM Persons上面的查询选取了 Persons 表中 LastName 列的所有数据,并返回类似这样的记录集:LastNameHanse
3、nSvendsonPettersen下载 MySQL 数据库如果您的 PHP 服务器没有 MySQL 数据库,可以在此下载 MySQL:Facts About MySQL Database关于 MySQL 的一点很棒的特性是,可以对它进行缩减,来支持嵌入的数据库应用程序。也许正因如此,许多人认为 MySQL 仅仅能处理中小型的系统。事实上,对于那些支持巨大数据和访问量的网站,MySQL 是事实上的标准数据库(比如 Friendster, Yahoo, Google)。这个地址提供了使用 MySQL 的公司的概览:二、PHP MySQL 连接数据库免费的 MySQL 数据库通常是通过 PHP 来
4、使用的。连接到一个 MySQL 数据库在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。在 PHP 中,这个任务通过 mysql_connect() 函数完成。语法mysql_connect(servername,username,password);参数描述servername可选。规定要连接的服务器。默认是 localhost:3306。username可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。password可选。规定登录所用的密码。默认是 。注释:虽然还存在其他的参数,但上面列出了最重要的参数。请访问 W3School 提供的 PHP MySQL
5、 参考手册,获得更多的细节信息。例子在下面的例子中,我们在一个变量中 ($con) 存放了在脚本中供稍后使用的连接。如果连接失败,将执行 die 部分:关闭连接脚本一结束,就会关闭连接。如需提前关闭连接,请使用 mysql_close() 函数。三、PHP MySQL 创建数据库和表数据库存有一个或多个表。创建数据库CREATE DATABASE 语句用于在 MySQL 中创建数据库。语法CREATE DATABASE database_name为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。此函数用于向 MySQL 连接发送查询或命令。例子在下面的例子中,我们
6、创建了一个名为 my_db 的数据库:创建表CREATE TABLE 用于在 MySQL 中创建数据库表。语法CREATE TABLE table_name(column_name1 data_type,column_name2 data_type,column_name3 data_type,.)为了执行此命令,我必须向 mysql_query() 函数添加 CREATE TABLE 语句。例子下面的例子展示了如何创建一个名为 Persons 的表,此表有三列。列名是 FirstName, LastName 以及 Age:重要事项:在创建表之前,必须首先选择数据库。通过 mysql_sele
7、ct_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) 支持带有小数的数字。在 size 参数中规定数字的最大值。在 d 参数中规定小数点右侧的数字的最大值。文本
8、数据类型描述char(size)支持固定长度的字符串。(可包含字母、数字以及特殊符号)。在 size 参数中规定固定长度。varchar(size)支持可变长度的字符串。(可包含字母、数字以及特殊符号)。在 size 参数中规定最大长度。tinytext支持可变长度的字符串,最大长度是 255 个字符。 text blob 支持可变长度的字符串,最大长度是 65535 个字符。 mediumtext mediumblob 支持可变长度的字符串,最大长度是 16777215 个字符。 longtext longblob 支持可变长度的字符串,最大长度是 4294967295 个字符。日期数据类型
9、描述 date(yyyy-mm-dd) datetime(yyyy-mm-dd hh:mm:ss) timestamp(yyyymmddhhmmss) time(hh:mm:ss) 支持日期或时间杂项数据类型描述enum(value1,value2,ect)ENUM 是 ENUMERATED 列表的缩写。可以在括号中存放最多 65535 个值。setSET 与 ENUM 相似。但是,SET 可拥有最多 64 个列表项目,并可存放不止一个 choice主键和自动递增字段每个表都应有一个主键字段。主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引
10、擎需要一个值来对记录进行定位。主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。下面的例子把 personID 字段设置为主键字段。主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。AUTO_INCREMENT 会在新纪录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。例子$sql = CREATE TABLE Persons(personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID),FirstNam
11、e varchar(15),LastName varchar(15),Age int);mysql_query($sql,$con);四、PHP MySQL Insert IntoINSERT INTO 语句用于向数据库表中插入新纪录。向数据库表插入数据INSERT INTO 语句用于向数据库表添加新纪录。语法INSERT INTO table_nameVALUES (value1, value2,.)您还可以规定希望在其中插入数据的列:INSERT INTO table_name (column1, column2,.)VALUES (value1, value2,.)注释:SQL 语句对大
12、小写不敏感。INSERT INTO 与 insert into 相同。为了让 PHP 执行该语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 连接发送查询或命令。例子在前面的章节,我们创建了一个名为 Persons 的表,有三个列:Firstname, Lastname 以及 Age。我们将在本例中使用同样的表。下面的例子向 Persons 表添加了两个新纪录:把来自表单的数据插入数据库现在,我们创建一个 HTML 表单,这个表单可把新纪录插入 Persons 表。这是这个 HTML 表单:Firstname: Lastname: Age: 当用户点击上例中 HT
13、ML 表单中的提交按钮时,表单数据被发送到 insert.php。insert.php 文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。下面是 insert.php 页面的代码:五、PHP MySQL SelectSELECT 语句用于从数据库中选取数据。从数据库表中选取数据SELECT 语句用于从数据库中选取数据。语法SELECT column_name(s) FROM table_name注释:SQL 语句对大小写不敏感。SELECT 与 select 等效。为了让 PHP 执
14、行上面的语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 发送查询或命令。例子下面的例子选取存储在 Persons 表中的所有数据(* 字符选取表中所有数据):?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(
15、$result) echo $rowFirstName . . $rowLastName; echo ; mysql_close($con);?上面这个例子在 $result 变量中存放由 mysql_query() 函数返回的数据。接下来,我们使用 mysql_fetch_array() 函数以数组的形式从记录集返回第一行。每个随后对 mysql_fetch_array() 函数的调用都会返回记录集中的下一行。 while loop 语句会循环记录集中的所有记录。为了输出每行的值,我们使用了 PHP 的 $row 变量 ($rowFirstName 和 $rowLastName)。以上代码的
16、输出:Peter GriffinGlenn Quagmire在 HTML 表格中显示结果下面的例子选取的数据与上面的例子相同,但是将把数据显示在一个 HTML 表格中:?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);echo FirstnameLastname;while($row = mysql_
17、fetch_array($result) echo ; echo . $rowFirstName . ; echo . $rowLastName . ; echo ; echo ;mysql_close($con);?以上代码的输出:FirstnameLastnameGlennQuagmirePeterGriffin六、PHP MySQL Where 子句如需选取匹配指定条件的数据,请向 SELECT 语句添加 WHERE 子句。WHERE 子句如需选取匹配指定条件的数据,请向 SELECT 语句添加 WHERE 子句。语法SELECT column FROM tableWHERE colum
18、n operator value下面的运算符可与 WHERE 子句一起使用:运算符说明=等于!=不等于大于=大于或等于=小于或等于BETWEEN介于一个包含范围内LIKE搜索匹配的模式注释:SQL 语句对大小写不敏感。WHERE 与 where 等效。为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。该函数用于向 SQL 连接发送查询和命令。例子下面的例子将从 Persons 表中选取所有 FirstName=Peter 的行:?php$con = mysql_connect(localhost,peter,abc123);if (!$con) die(Could
19、 not connect: . mysql_error(); mysql_select_db(my_db, $con);$result = mysql_query(SELECT * FROM PersonsWHERE FirstName=Peter);while($row = mysql_fetch_array($result) echo $rowFirstName . . $rowLastName; echo ; ?以上代码的输出:Peter Griffin七、PHP MySQL Order By 关键词ORDER BY 关键词用于对记录集中的数据进行排序。ORDER BY 关键词ORDER
20、 BY 关键词用于对记录集中的数据进行排序。语法SELECT column_name(s)FROM table_nameORDER BY column_name注释:SQL 对大小写不敏感。ORDER BY 与 order by 等效。例子下面的例子选取 Persons 表中的存储的所有数据,并根据 Age 列对结果进行排序:?php$con = mysql_connect(localhost,peter,abc123);if (!$con) die(Could not connect: . mysql_error(); mysql_select_db(my_db, $con);$result
21、 = mysql_query(SELECT * FROM Persons ORDER BY age);while($row = mysql_fetch_array($result) echo $rowFirstName; echo . $rowLastName; echo . $rowAge; echo ; mysql_close($con);?以上代码的输出:Glenn Quagmire 33Peter Griffin 35升序或降序的排序如果您使用 ORDER BY 关键词,记录集的排序顺序默认是升序(1 在 9 之前,a 在 p 之前)。请使用 DESC 关键词来设定降序排序(9 在 1
22、 之前,p 在 a 之前):SELECT column_name(s)FROM table_nameORDER BY column_name DESC根据两列进行排序可以根据多个列进行排序。当按照多个列进行排序时,只有第一列相同时才使用第二列:SELECT column_name(s)FROM table_nameORDER BY column_name1, column_name2七、PHP MySQL UpdateUPDATE 语句用于中修改数据库表中的数据。更新数据库中的数据UPDATE 语句用于在数据库表中修改数据。语法UPDATE table_nameSET column_name = new_valueWHERE column_name = some_value注释:SQL 对大小写不敏感。UPDATE 与 update 等效。为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数。该函数用于
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1