Unit 9:数据添加

本节主要讲解如何将数据添加到数据库中。

你可以使用 CFFORM 标记或使用标准的 HTML 表格标记建立表单,收集用户要插入到数据库的信息。当表格提交后,表格信息传递到处理页,由处理页执行插入操作,插入操作可由 CFINSERT 或 CFQUERY 加上 SQL 语句来实现,最后处理页要给用户发回确认信息。所以一般的数据添加都有两个 CFM 文件:

  • 建立添加表格

  • 建立添加处理页

建立数据添加表单

当使用 HTML 建立添加表单时,要定义 ACTION 和 METHOD 两个属性,通常 METHOD 为POST , ACTION 可以指向一个以.CFM 为后缀的 ColdFusion 文件。例如: <FORM ACTION="insdata.cfm" METHOD="Post">。

依照要添入到数据库中的各项建立表单项,表单项的名称属性值要和数据库中的数据项名称相同。例如,有一个存贮雇员信息的数据库,ODBC 数据源的名称是 Employee DB, 其中有一个表叫 Employees,存储雇员的姓氏(FirstName)、名字(LastName)和电话号码(Phone)三项信息,下面建立添加雇员的表单:

<FORM ACTION="insdata.cfm" METHOD="Post">

<!-- Data entry fields -->

<PRE>

First Name: <INPUT TYPE="text" NAME="FirstName"> Last Name: <INPUT TYPE="text" NAME="LastName"> Phone: <INPUT TYPE="text" NAME="Phone">

<INPUT TYPE="Submit" VALUE="Enter Information">

</PRE>

</FORM>

When the Submit button is clicked, the form action is carried out, and all inputs (including hidden inputs) are made available to the next page.

当提交键按下后,insdata.cfm 文件运行,输入的内容在 insdata.cfm 中全部有效, 可以使用。

建立添加 Action 页

ColdFusion 有两个 Tag 可以用来更新数据库,CFINERT 和 CFQUERY。它们一个简单易用,一个功能较强。下面分别介绍这两个 Tag。

使用 CFINSERT 建立更新处理页。

先讲解 CFINSERT 的语法:

<CFINSERT DATASOURCE="ds_name" //数据源名称

DBTYPE="type"//数据源类型,可以是 ODBC、Oracle73、Oracle80、Sybase11 DBSERVER="dbms"//

DBNAME="database name"//Sybase 11 驱动器专用

TABLENAME="tbl_name"//要添加的数据库中表格名称TABLEOWNER="owner"

TABLEQUALIFIER="tbl_qualifier" USERNAME="username" PASSWORD="password" PROVIDER="COMProvider" //OLE_DB 专用PROVIDERDSN="datasource" // OLE_DB 专用

FORMFIELDS="formfield1, formfield2, ..."> 在多数情况下,用到的 CFINSERT 属性很少。

下面的例子是添加雇员信息的处理的文件 insdata.cfm:

<!--- Inserts the data from the the HTML Form --->

<CFINSERT DATASOURCE="Employee DB" TABLENAME="Employees">

<HTML>

<HEAD><TITLE>Input Form</TITLE></HEAD>

<BODY>

<CENTER><H2>Thank You!</H2></CENTER>

<HR>

<P>此雇员的信息已正确添加到了数据库中!!! </P>

<HR>

</BODY>

</HTML>

使用 CFQUERY 建立添加处理页。

要处理复杂的添加处理可以在 CFQUERY 标记中使用 SQL 的插入语句,SQL 的插入语句使用十分灵活,它的语法:

INSERT INTO tablename (columnnames) VALUES (values) 还以登记雇员信息为例:

<CFQUERY NAME="AddEmployee" DATASOURCE="Employee DB"> INSERT INTO Employees (FirstName, LastName, Phone)

VALUES ('#Form.FirstName#', '#Form.LastName#', '#Form.Phone#')

</CFQUERY>

练习题:

根据第四天的数据库建立一个添加界面和处理页。