ColdFusion向数据库插入数据例子
2006-05-15 19:31
495 查看
向数据库插入数据的内容 |
保存以下代码,使用URL:HTTP://127.0.0.1/insert.cfm来得到HTML的内容。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>插入新职员相关信息</title> <style type="text/css"> <!-- .t { background-color: #FFFFFF; border: 1px dotted} --> </style> </head> <body bgcolor="#FFFFFF"> <span class="t"><span class="t"></span></span> <form method="POST" action="insert_action.cfm"> <p> 职员姓名 <input type="text" name="name" size="20" class="t"> <br> 职员工资 <input type="text" name="salary" size="20" class="t"> <br> 家庭住址 <input type="text" name="address" size="20" class="t"> </p> <p><input type="submit" value="插入" name="insert"> <input type="reset" value="重写" name="reset"> </p> </form> </body> </html> 看上去,和下面样子差不多 职员姓名 职员工资 家庭住址 大家已经看出来,这是个html表单,用于向数据库提交数据,为了样式好看,我们加入了点CSS代码。<form>标签中的method是表单提交方法,这是必须写明的,注意,在CF中,表单提交的方法必须是post,如果使用别的提交方法,例如get,提交就会发生错误。action是指出应由哪个处理文件处理form中提交的数据,这里我们用insert_action.cfm文件。你应该为各个<input>标签中的name命名,等一下你就会知道为啥要这样做。 再保存了以下代码,取名为insert_action.cfm,也就是上面表单action指定处理提交数据的文件 <cfif #ParameterExists(Form.insert)#> <cfif NOT #LEN(Form.name)# OR NOT #LEN(Form.salary)# OR NOT #LEN(Form.address)#> <cflocation url="insert.cfm"> </cfif> <CFQUERY NAME= "selectemployee" DATASOURCE= "employee"> SELECT * FROM employee_info where employee_name='#Form.name#' </CFQUERY> <cfif #selectemployee.recordcount# GT 0> <cfoutput><center>职员#Form.name#的信息已经存在,请核实后再输入</center></cfoutput> <cfelse> <CFQUERY NAME= "abc" DATASOURCE= "employee"> INSERT INTO employee_info (employee_name, employee_salary, employee_address) VALUES ('#Form.name#', #Form.salary#, '#Form.address#') </CFQUERY> <CFQUERY NAME= "abc" DATASOURCE= "employee"> SELECT * FROM employee_info </CFQUERY> <html> <head> <title>职员工资表</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body bgcolor="#FFFFFF" text="#000000"> <table width="50%" border="1" bordercolor="#000000"> <tr> <td>编号</td> <td>职员姓名</td> <td>工资</td> <td>地址</td> </tr> <CFOUTPUT QUERY= "abc"> <tr> <td>#employee_id#</td> <td>#employee_name#</td> <td>#employee_salary#</td> <td>#employee_address#</td> </tr> </cfoutput> </table> </body> </html> </cfif> <cfelse> <cflocation url="insert.cfm"> </cfif> 这里,我们用到了CF的一个标签:<cfif>,用来判断条件,然后执行相应处理。<cfif #ParameterExists(Form.insert)#>中的#ParameterExists(Form.insert)# .......(中间代码省略) <cfelse> <cflocation url="insert.cfm"> </cfif> 是判断Form.insert变量是否存在,这下你知道了为啥我们要在前面的表单文件中要写<input type="submit" value="插入" name="insert">,为submit命名成insert的原因,如果没有提交数据,直接跳过insert.cfm,我们可不想看到这样的情况发生,所以,我们写了这个<cfif>判断语句,如果变量不存在就执行<cflocation url="insert.cfm">,回到insert.cfm。 而ParameterExists()是CF的一个判断变量是否存在的函数。 <cfif NOT #LEN(Form.name)# OR NOT #LEN(Form.salary)# OR NOT #LEN(Form.address)#> <cflocation url="insert.cfm"> </cfif>这条代码,和上面的作用一样,如果你没有完整得输入数据,某些框没填,就执行<cflocation url="insert.cfm">,仍然留在原地,直到数据全部输入完整,你也可以写一些提示信息。LEN()是判断是否为空的函数,在这里判断表单变量是否为空。 <CFQUERY NAME= "selectemployee" DATASOURCE= "employee"> SELECT * FROM employee_info where employee_name='#Form.name#' </CFQUERY> <cfif #selectemployee.recordcount# GT 0> <cfoutput><center>职员#Form.name#的信息已经存在,请核实后再输入</center></cfoutput> 我说过,在<cfquery>标签中,使用标准SQL语句执行相应的数据库操作。这里我们判断在insert.cfm提交的人名在数据库中是否已经存在,SELECT * FROM employee_info where employee_name='#Form.name#',注意这里如果变量是字符串一定要使用单引号封在变量名周围。<cfif #selectemployee.recordcount# GT 0> <cfoutput><center>职员#Form.name#的信息已经存在,请核实后再输入</center></cfoutput> 是说查询结果如果大于0,就显示错误提示信息。#selectemployee.recordcount#是查询合计,GT是大于的意思。 <cfelse> <CFQUERY NAME= "abc" DATASOURCE= "employee"> INSERT INTO employee_info (employee_name, employee_salary, employee_address) VALUES ('#Form.name#', #Form.salary#, '#Form.address#') </CFQUERY> 这些代码是本课的重点:如果提交的人名数据库中不存在,就插入到数据库,成为一条新记录。仍然是使用<cfquery>标签,插入的SQL语句是这样写的:INSERT INTO 表名 (表内字段名,若有多个用逗号隔开)VALUES (变量名或特定数据,若有多个用逗号隔开) 注意这里如果变量是字符串类型也要使用单引号封在变量名周围。其它的代码你应该能看得懂。 好,这节课程结束,下节课我们继续。下节课程我们讲如何向数据库更新已存在的数据及如何删除已存在的数据。各位有啥意见或建议,请发mail给我,JavaProgramers@hotmail.com 谢谢! |
相关文章推荐
- ColdFusion向数据库插入数据例子
- 简单的jdbc操作数据库例子,高效率插入数据
- 学习Java6(六) 嵌入式数据库Derby(2)一个基本的例子(建数据库、建表、插入数据、查询)
- 用JDBC连接Vertica数据库后插入一行数据的例子源代码(接上篇)
- 批量插入excel数据到数据库中的小例子
- Qt中操作数据库例子-插入数据
- 寻求快速的数据库数据插入方法
- 采用SqlBulkCopy向数据库批量插入数据(大数据效果显著)
- SQL Server2005中使用XML-使用OPENXML将xml数据插入到数据库
- 数据库插入数据失败
- iOS学习之sqlite的创建数据库,表,插入查看数据
- 数据库插入数据之select into from与insert into select区别详解
- 笔记:读取sql文件,然后将数据批量插入数据库
- 向Sql server 数据库表中ntext字段插入数据达到上限的处理方法
- Android 根据sql文件创建数据库并插入数据
- 利用数据库的存储过程批量建表和批量插入数据
- 快速插入数据库数据
- java从文件中读取数据然后插入到数据库表中
- 转载自大牛的博文-解决大批量插入数据到数据库中的问题
- 在struts1.2中,往数据库插入数据出现中文乱码