Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1427217
  • 博文数量: 188
  • 博客积分: 1784
  • 博客等级: 上尉
  • 技术积分: 2772
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-05 22:20
个人简介

发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行。

文章分类

全部博文(188)

文章存档

2020年(12)

2019年(11)

2018年(4)

2017年(3)

2016年(11)

2015年(22)

2014年(19)

2013年(25)

2012年(32)

2011年(49)

分类: LINUX

2011-11-15 22:17:41

一、mysql_connect

语法 mysql_connect(servername,username,password);
参数 描述
servername 可选。规定要连接的服务器。默认是 "localhost:3306"。
username 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。
password 可选。规定登录所用的密码。默认是 ""。

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

例子

在下面的例子中,我们在一个变量中 ($con) 存放了在脚本中供稍后使用的连接。如果连接失败,将执行 "die" 部分:

  1. <?php
  2.  $con = mysql_connect("localhost","peter","abc123");
  3.  if (!$con) {
  4. die('Could not connect: ' . mysql_error());
  5. }
  6. // some code
  7. ?>
关闭连接

脚本一结束,就会关闭连接。如需提前关闭连接,请使用 mysql_close() 函数。

  1. <?php
  2. $con = mysql_connect("localhost","peter","abc123");
  3. if (!$con) {
  4.  die('Could not connect: ' . mysql_error());
  5.  }
  6. // some code
  7.  mysql_close($con);
  8. ?>
二、mysql_create

创建数据库

CREATE DATABASE 语句用于在 MySQL 中创建数据库。

语法 CREATE DATABASE database_name

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

例子

在下面的例子中,我们创建了一个名为 "my_db" 的数据库:

  1. <?php
  2.  $con = mysql_connect("localhost","peter","abc123");
  3. if (!$con)
  4.  {
  5.  die('Could not connect: ' . mysql_error());
  6.  }
  7.  if (mysql_query("CREATE DATABASE my_db",$con)){
  8.  echo "Database created";
  9. }
  10. else {
  11.  echo "Error creating database: " . mysql_error();
  12. }
  13. mysql_close($con);
  14. ?>
创建表

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

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

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

例子

下面的例子展示了如何创建一个名为 "Persons" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":

  1. <?php
  2.  $con = mysql_connect("localhost","peter","abc123");
  3.  if (!$con) {
  4. die('Could not connect: ' . mysql_error());
  5. }
  6. // Create database
  7. if (mysql_query("CREATE DATABASE my_db",$con)) {
  8.  echo "Database created";
  9. }
  10.  else {
  11. echo "Error creating database: " . mysql_error();
  12. }
  13.  // Create table in my_db database mysql_select_db("my_db", $con);
  14.  $sql = "CREATE TABLE Persons ( FirstName varchar(15), LastName varchar(15), Age int )"; mysql_query($sql,$con);
  15. mysql_close($con);
  16. ?>

重要事项:在创建表之前,必须首先选择数据库。通过 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)

支持带有小数的数字。

在 size 参数中规定数字的最大值。在 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-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • time(hh:mm:ss)
支持日期或时间
杂项数据类型 描述
enum(value1,value2,ect) ENUM 是 ENUMERATED 列表的缩写。可以在括号中存放最多 65535 个值。
set SET 与 ENUM 相似。但是,SET 可拥有最多 64 个列表项目,并可存放不止一个 choice
主键和自动递增字段

每个表都应有一个主键字段。

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

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

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

例子
  1. $sql = "CREATE TABLE Persons ( personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), FirstName varchar(15), LastName varchar(15), Age int )";
  2.  mysql_query($sql,$con);


三、mysql_insert

向数据库表插入数据

INSERT INTO 语句用于向数据库表添加新纪录。

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

您还可以规定希望在其中插入数据的列:

  1. INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)

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

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

例子

在前面的章节,我们创建了一个名为 "Persons" 的表,有三个列:"Firstname", "Lastname" 以及 "Age"。我们将在本例中使用同样的表。下面的例子向 "Persons" 表添加了两个新纪录:

  1. <?php
  2. $con = mysql_connect("localhost","peter","abc123");
  3. if (!$con) {
  4. die('Could not connect: ' . mysql_error());
  5. }
  6. mysql_select_db("my_db", $con);
  7.  mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')"); mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Glenn', 'Quagmire', '33')");
  8. mysql_close($con);
  9. ?>
把来自表单的数据插入数据库

现在,我们创建一个 HTML 表单,这个表单可把新纪录插入 "Persons" 表。

这是这个 HTML 表单:

  1. <html>
  2.  <body>
  3.  <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" />
  4. </form>
  5.  </body>
  6.  </html>

当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php" 文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。

下面是 "insert.php" 页面的代码:

  1. <?php
  2. $con = mysql_connect("localhost","peter","abc123");
  3. if (!$con) {
  4.  die('Could not connect: ' . mysql_error());
  5.  }
  6. mysql_select_db("my_db", $con);
  7. $sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
  8.  if (!mysql_query($sql,$con)) {
  9. die('Error: ' . mysql_error());
  10. }
  11. echo "1 record added";
  12.  mysql_close($con)
  13. ?>
阅读(1420) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~