`

PHP 数据库

    博客分类:
  • PHP
阅读更多
PHP MySQL 简介
MySQL 是最流行的开源数据库服务器。
什么是 MySQL?
MySQL 是一种数据库。数据库定义了存储信息的结构。

在数据库中,存在着一些表。类似 HTML 表格,数据库表含有行、列以及单元。

在分类存储信息时,数据库非常有用。一个公司的数据库可能拥有这些表:"Employees", "Products", "Customers" 以及 "Orders"。
数据库表
数据库通常包含一个或多个表。每个表都一个名称(比如 "Customers" 或 "Orders")。每个表包含带有数据的记录(行)。

下面是一个名为 "Persons" 的表的例子:



上面的表含有三个记录(每个记录是一个人)和四个列(LastName, FirstName, Address 以及 City)。
查询
查询是一种询问或请求。

通过 MySQL,我们可以向数据库查询具体的信息,并得到返回的记录集。

请看下面的查询:
SELECT LastName FROM Persons

上面的查询选取了 Persons 表中 LastName 列的所有数据,并返回类似这样的记录集:


下载 MySQL 数据库
如果您的 PHP 服务器没有 MySQL 数据库,可以在此下载 MySQL:http://www.mysql.com/downloads/index.html

Facts About MySQL Database
关于 MySQL 的一点很棒的特性是,可以对它进行缩减,来支持嵌入的数据库应用程序。也许正因如此,许多人认为 MySQL 仅仅能处理中小型的系统。

事实上,对于那些支持巨大数据和访问量的网站,MySQL 是事实上的标准数据库(比如 Friendster, Yahoo, Google)。这个地址提供了使用 MySQL 的公司的概览:http://www.mysql.com/customers/。

PHP MySQL 连接数据库
免费的 MySQL 数据库通常是通过 PHP 来使用的。
连接到一个 MySQL 数据库
在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。

在 PHP 中,这个任务通过 mysql_connect() 函数完成。

语法
mysql_connect(servername,username,password);



注释:虽然还存在其他的参数,但上面列出了最重要的参数。请访问 W3School 提供的 PHP MySQL 参考手册,获得更多的细节信息。

例子
在下面的例子中,我们在一个变量中 ($con) 存放了在脚本中供稍后使用的连接。如果连接失败,将执行 "die" 部分:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code

?>

关闭连接
脚本一结束,就会关闭连接。如需提前关闭连接,请使用 mysql_close() 函数。
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code

mysql_close($con);
?>


PHP MySQL 创建数据库和表
数据库存有一个或多个表。
创建数据库
CREATE DATABASE 语句用于在 MySQL 中创建数据库。

语法
CREATE DATABASE database_name

为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。此函数用于向 MySQL 连接发送查询或命令。

例子
在下面的例子中,我们创建了一个名为 "my_db" 的数据库:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }

mysql_close($con);
?>

创建表
CREATE TABLE 用于在 MySQL 中创建数据库表。

语法
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)

为了执行此命令,我必须向 mysql_query() 函数添加 CREATE TABLE 语句。

例子
下面的例子展示了如何创建一个名为 "person" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// Create database
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }

// Create table in my_db database
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE person 
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);

mysql_close($con);
?>

重要事项:在创建表之前,必须首先选择数据库。通过 mysql_select_db() 函数选取数据库。

注释:当您创建 varchar 类型的数据库字段时,必须规定该字段的最大长度,例如:varchar(15)。
MySQL 数据类型



主键和自动递增字段
每个表都应有一个主键字段。

主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。

主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。

下面的例子把 personID 字段设置为主键字段。主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。AUTO_INCREMENT 会在新纪录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。

例子
$sql = "CREATE TABLE person 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
)";

mysql_query($sql,$con);


PHP MySQL Insert Into
INSERT INTO 语句用于向数据库表中插入新纪录。
向数据库表插入数据
INSERT INTO 语句用于向数据库表添加新纪录。

语法
INSERT INTO table_name
VALUES (value1, value2,....)

您还可以规定希望在其中插入数据的列:
INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)

注释:SQL 语句对大小写不敏感。INSERT INTO 与 insert into 相同。

为了让 PHP 执行该语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 连接发送查询或命令。

例子
在前面的章节,我们创建了一个名为 "Person" 的表,有三个列:"Firstname", "Lastname" 以及 "Age"。我们将在本例中使用同样的表。下面的例子向 "Person" 表添加了两个新纪录:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("INSERT INTO person (FirstName, LastName, Age) 
VALUES ('Peter', 'Griffin', '35')");

mysql_query("INSERT INTO person (FirstName, LastName, Age) 
VALUES ('Glenn', 'Quagmire', '33')");

mysql_close($con);
?>

把来自表单的数据插入数据库
现在,我们创建一个 HTML 表单,这个表单可把新纪录插入 "Person" 表。

这是这个 HTML 表单:
<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());
  }

mysql_select_db("my_db", $con);

$sql="INSERT INTO person (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)
?>


PHP MySQL Select
SELECT 语句用于从数据库中选取数据。
从数据库表中选取数据
SELECT 语句用于从数据库中选取数据。

语法
SELECT column_name(s) FROM table_name

注释:SQL 语句对大小写不敏感。SELECT 与 select 等效。

为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 发送查询或命令。

例子
下面的例子选取存储在 "Person" 表中的所有数据(* 字符选取表中所有数据):
<?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 person");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

mysql_close($con);
?>

上面这个例子在 $result 变量中存放由 mysql_query() 函数返回的数据。接下来,我们使用 mysql_fetch_array() 函数以数组的形式从记录集返回第一行。每个随后对 mysql_fetch_array() 函数的调用都会返回记录集中的下一行。 while loop 语句会循环记录集中的所有记录。为了输出每行的值,我们使用了 PHP 的 $row 变量 ($row['FirstName'] 和 $row['LastName'])。

以上代码的输出:

Peter Griffin
Glenn 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 person");

echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

以上代码的输出:


PHP MySQL Where 子句
如需选取匹配指定条件的数据,请向 SELECT 语句添加 WHERE 子句。
WHERE 子句
如需选取匹配指定条件的数据,请向 SELECT 语句添加 WHERE 子句。

语法
SELECT column FROM table
WHERE column operator value

下面的运算符可与 WHERE 子句一起使用:


注释:SQL 语句对大小写不敏感。WHERE 与 where 等效。

为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。该函数用于向 SQL 连接发送查询和命令。

例子
下面的例子将从 "Person" 表中选取所有 FirstName='Peter' 的行:
<?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 person
WHERE FirstName='Peter'");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

?>

以上代码的输出:

Peter Griffin

PHP MySQL Order By 关键词
ORDER BY 关键词用于对记录集中的数据进行排序。
ORDER BY 关键词
ORDER BY 关键词用于对记录集中的数据进行排序。

语法
SELECT column_name(s)
FROM table_name
ORDER BY column_name

注释:SQL 对大小写不敏感。ORDER BY 与 order by 等效。

例子
下面的例子选取 "Person" 表中的存储的所有数据,并根据 "Age" 列对结果进行排序:
<?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 person ORDER BY age");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'];
  echo " " . $row['LastName'];
  echo " " . $row['Age'];
  echo "<br />";
  }

mysql_close($con);
?>

以上代码的输出:

Glenn Quagmire 33
Peter Griffin 35
升序或降序的排序
如果您使用 ORDER BY 关键词,记录集的排序顺序默认是升序(1 在 9 之前,"a" 在 "p" 之前)。

请使用 DESC 关键词来设定降序排序(9 在 1 之前,"p" 在 "a" 之前):
SELECT column_name(s)
FROM table_name
ORDER BY column_name DESC

根据两列进行排序
可以根据多个列进行排序。当按照多个列进行排序时,只有第一列相同时才使用第二列:
SELECT column_name(s)
FROM table_name
ORDER BY column_name1, column_name2


PHP MySQL Update
UPDATE 语句用于中修改数据库表中的数据。
更新数据库中的数据
UPDATE 语句用于在数据库表中修改数据。

语法
UPDATE table_name
SET column_name = new_value
WHERE column_name = some_value

注释:SQL 对大小写不敏感。UPDATE 与 update 等效。

为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数。该函数用于向 SQL 连接发送查询和命令。

例子
稍早时,我们在本教程中创建了一个名为 "Person" 的表。它看起来类似这样:


下面的例子更新 "Person" 表的一些数据:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("UPDATE Person SET Age = '36'
WHERE FirstName = 'Peter' AND LastName = 'Griffin'");

mysql_close($con);
?>

在这次更新后,"Person" 表格是这样的:


PHP MySQL Delete From
DELETE FROM 语句用于从数据库表中删除行。
删除数据库中的数据
DELETE FROM 语句用于从数据库表中删除记录。

语法
DELETE FROM table_name
WHERE column_name = some_value

注释:SQL 对大小写不敏感。DELETE FROM 与 delete from 等效。

为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数。该函数用于向 SQL 连接发送查询和命令。

例子
稍早时,我们在本教程中创建了一个名为 "Person" 的表。它看起来类似这样:


下面的例子删除 "Person" 表中所有 LastName='Griffin' 的记录:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("DELETE FROM Person WHERE LastName='Griffin'");

mysql_close($con);
?>

在这次删除之后,表是这样的:


PHP Database ODBC
ODBC 指的是(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个 MS Access 数据库)。
创建 ODBC 连接
通过一个 ODBC 连接,您可以连接到您的网络中的任何计算机上的任何数据库,只要 ODBC 连接是可用的。

这是创建到达 MS Access 数据的 ODBC 连接的方法:

在控制面板中打开管理工具
双击其中的数据源 (ODBC) 图标
选择系统 DSN 选项卡
点击系统 DSN 选项卡中的“添加”按钮
选择 Microsoft Access Driver。点击完成。
在下一个界面,点击“选择”来定位数据库。
为这个数据库取一个数据源名 (DSN)。
点击确定。
请注意,必须在您的网站所在的计算机上完成这个配置。如果您的计算机上正在运行 Internet 信息服务器 (IIS),上面的指令会生效,但是假如您的网站位于远程服务器,您必须拥有对该服务器的物理访问权限,或者请您的主机提供商为您建立 DSN。
连接到 ODBC
odbc_connect() 函数用于连接到 ODBC 数据源。该函数有四个参数:数据源名、用户名、密码以及可选的指针类型参数。

odbc_exec() 函数用于执行 SQL 语句。

例子
下面的例子创建了到达名为 northwind 的 DSN 的连接,不没有用户名和密码。然后创建并执行一条 SQL 语句:
$conn=odbc_connect('northwind','','');
$sql="SELECT * FROM customers"; 
$rs=odbc_exec($conn,$sql);

取回记录
odbc_fetch_row() 函数用于从结果集中返回记录。如果能够返回行,则返回 true,否则返回 false。

该函数有两个参数:ODBC 结果标识符和可选的行号:
odbc_fetch_row($rs)

从记录中取回字段
odbc_result() 函数用于从记录中读取字段。该函数有两个参数:ODBC 结果标识符和字段编号或名称。

下面的代码行从记录中返回第一个字段的值:
$compname=odbc_result($rs,1); 

The code line below returns the value of a field called "CompanyName":
$compname=odbc_result($rs,"CompanyName");

关闭 ODBC 连接
odbc_close()函数用于关闭 ODBC 连接。
odbc_close($conn);

ODBC 实例
下面的例子展示了如何首先创建一个数据库连接,然后是结果集,然后在 HTML 表格中显示数据。
<html>
<body>

<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
  {exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
  {exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
  $compname=odbc_result($rs,"CompanyName");
  $conname=odbc_result($rs,"ContactName");
  echo "<tr><td>$compname</td>";
  echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>

</body>
</html>
  • 大小: 4.1 KB
  • 大小: 1.5 KB
  • 大小: 3.7 KB
  • 大小: 15.2 KB
  • 大小: 4 KB
  • 大小: 1.9 KB
  • 大小: 3.5 KB
  • 大小: 2.6 KB
  • 大小: 2.6 KB
  • 大小: 2.6 KB
  • 大小: 2.1 KB
分享到:
评论

相关推荐

    php数据库操作封装类.zip

    "php数据库操作封装类.zip"提供的就是一个这样的工具,它可以帮助我们更方便、高效地处理数据库交互。下面将详细探讨PHP数据库操作封装类的相关知识点。 1. **面向对象编程**: PHP数据库操作封装类是基于面向对象...

    PHP数据库系统开发完全手册图书源码

    《PHP数据库系统开发完全手册》是一本专注于PHP与数据库交互技术的专业书籍,旨在帮助开发者深入理解和熟练掌握PHP在数据库系统开发中的应用。源码提供是为了让读者能够实践书中的示例,加深理解并提升实际操作技能...

    强大的通用php数据库操作类

    【标题】:“强大的通用php数据库操作类” 在PHP开发中,数据库操作是核心部分,而一个强大且通用的PHP数据库操作类能极大地提升开发效率,降低出错概率。这类类库通常封装了基本的SQL查询功能,如增删改查(CRUD)...

    PHP数据库链接类

    【PHP数据库链接类】是PHP开发中一个重要的概念,它允许程序员通过编程方式与各种数据库进行交互,如MySQL、PostgreSQL、SQLite等。在PHP中,数据库连接类通常被用来封装数据库操作,提供统一的接口,使得代码更易于...

    PHP数据库系统开发完全手册 源代码

    《PHP数据库系统开发完全手册》是一本专注于使用PHP进行数据库系统构建的专业教程,结合源代码提供了深入学习的机会。本文将围绕这个主题,详细介绍PHP数据库系统开发中的关键知识点,包括PHP基础、数据库连接、SQL...

    php数据库访问封装类集合

    本文将深入探讨“php数据库访问封装类集合”这一主题,它包含了多种数据库访问实现方式,旨在为开发者提供更多的选择和支持。 首先,我们要理解数据库访问封装类的基本概念。这种类通常会包含连接、查询、执行SQL...

    MySQL/PHP数据库应用开发指南 PDF版 PART1

    MySQL/PHP数据库应用开发指南 PART1 本书以应用程序的开发为核心,以具体实例展示了如何将PHP和MySQL紧密结合,实现数据驱动Web站点。全书共分为5个部分,首先讲解了使用MySQL所需了解的数据库方面的知识,接着探讨...

    php数据库选择和创建

    【PHP数据库选择和创建】是针对初学者的学习资源,涵盖了如何选择和创建数据库的基本知识,主要涉及PHP支持的多种数据库类型及其特点。PHP作为一种流行的服务器端脚本语言,能够与各种数据库系统集成。 1. **数据库...

    PHP数据库处理类.zip

    在WEB应用程序开发数据库操作类是一个必不可少的东西了,当然大家可以直接连接数据库进行查询,但这样维护不方便,整理了一个不错的PHP数据库处理类与各位分享。一个简单的数据库操作类,便于快速向数据库插入数据、...

    PHP数据库系统开发完全手册

    资源名称:PHP数据库系统开发完全手册资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    php数据库访问类

    完整的PHP访问公共类,可以执行SQL的增删改查操作!

    php数据库作业

    PHP与数据库的交互是Web应用开发中的基础部分,这个"php数据库作业"可能涉及了如何使用PHP连接、查询、操作数据库的知识。 **1. 数据库基础** 在开始PHP编程之前,我们需要理解数据库的基本概念。数据库是一个组织...

    MySQL/PHP数据库应用开发指南

    全书共分为5个部分,首先讲解了使用MySQL所需了解的数据库方面的知识,接着探讨了PHP的基本脚本语言、PHP函数以及编写可管理的简捷代码的技巧,然后给出了两个简单的应用程序,来宾簿和调查表,在实践中应用所学的...

    PHP数据库操作类,支持多连接

    这个自编写的PHP数据库操作类,名为DBConnection,旨在提供一个高效、灵活的解决方案来管理多个数据库连接,允许开发者根据需求轻松地在不同的数据源之间切换。 DBConnection类的主要特点和功能如下: 1. **多...

    php 数据库升级对比工具

    "PHP数据库升级对比工具"正是为了解决这一问题而设计的。这个工具帮助开发者在数据库升级过程中清晰地了解数据库的变动,包括新增、删除表以及表结构的修改等,确保升级过程的顺利进行。以下是关于这个工具及相关...

    MySQL-PHP数据库应用开发指南

    MySQL-PHP数据库应用开发指南 pdf格式 。。。。。。。。。。

    MySQL-PHP数据库应用开发指南.part04

    MySQL-PHP数据库应用开发指南,非常好的一本书,要下完所有的文件才能解压。

    php 数据库备份类

    在PHP开发中,数据库管理是不可或缺的一部分,而数据库备份则是数据安全的重要环节。"php 数据库备份类"是一个专门用于数据库备份的PHP类,它可以帮助开发者实现自动化、高效的数据库备份功能,确保在系统出现故障...

    PHP数据库操作类

    PHP数据库操作类是为了方便开发者更高效、安全地与各种数据库系统(如MySQL、PostgreSQL、SQLite等)进行交互而设计的。本篇文章将围绕"PHP数据库操作类"这个主题,详细介绍相关知识点,并基于提供的文件名(sql_...

    php 数据库类

    php数据库操作类,里面集成了数据库curl操作,方便操作

Global site tag (gtag.js) - Google Analytics