Database 通过coldfusion写入数据库

Database 通过coldfusion写入数据库,database,coldfusion,Database,Coldfusion,我正在写一个submit.cfm文档。我正在尝试将用户信息写入一个空白的新数据库。 这是我的密码: <cfif ParameterExists(form.submit)> <cfquery name="AddProfile" datasource="careers_acad_internship"> INSERT INTO internships VALUES ( '#form.stu_first#', '#form.stu_l

我正在写一个submit.cfm文档。我正在尝试将用户信息写入一个空白的新数据库。 这是我的密码:

<cfif ParameterExists(form.submit)>
<cfquery name="AddProfile" datasource="careers_acad_internship">
    INSERT INTO internships
        VALUES (
          '#form.stu_first#', '#form.stu_last#', 
          #form.stu_id#,      '#form.sup_name#', 
          '#form.sup_email#', #form.sup_phone#,
          '#form.emp_name#', '#form.emp_add#',
          '#form.spec_obj#', '#form.spec_duties#',
          '#form.semester#', #form.intern_year#,
          '#form.work_sche#', '#form.digital_sig#')        
</cfquery>

加入实习
价值观(
“#form.stu first#”,“form.stu last”,
#form.stu#id#,'#form.sup#name#',
“#form.sup#email#”、#form.sup#phone#,
“#form.emp#u name”、“#form.emp#u add”,
“#form.spec#obj”,“form.spec#u职责”,
"形式.学期","形式.实习",,
“#表格.工作日程,”#表格.数字##”
但结果是有一个错误。我不知道是语法错误还是其他原因

下面是错误消息

第0列
ID CFQUERY
第24行
原始跟踪位于cfsubmit2ecfm1505563048.runPage(D:\web\careers\academicalpeopmentation\submit.cfm:24)
模板D:\web\careers\AcademicalInterporation\submit.cfm
类型CFML


谢谢,

您需要包括要在其中插入值的列名列表 例如:

<cfqueryparam value="#form.stu_first#" cfsqltype="cf_sql_varchar">
插入实习(学生第一、学生最后、学生id、学生姓名、学生电子邮件、学生电话、员工姓名、员工姓名、员工添加、第二目标、规范职责、学期、实习年、工作计划、数字信号)
“形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.形式.stu U U U第一次的第一次355“ţ,,,,“形式.形式.形式.形式.形式.形式.形式.形式.形式.stu.形式.形式.形式.形式.形式.stu id id.身份.身份.身份.id 355号号号........................................................................................#表格.规格.职责#',#表格.学期#',#表格.实习年#',#表格.工作日程#',#表格.数字##')

当然,假设您的列名与表单变量名相同。

会跳出两件事:

  • 您应该在insert语句中使用
    (以及应用程序中的每个其他查询)。这是为了防止SQL注入,并稍微提高性能
  • 应该在VALUES子句之前的insert语句中显式列出列

  • 首先,仔细检查您的数据类型,我注意到您引用了一些变量,但没有引用其他变量,请确保下面的内容是正确的

    <cfquery datasource="foobar"> INSERT INTO internships (stu_first,stu_last,stu_id,sup_name,sup_email,sup_phone,emp_name,emp_add,spec_obj,spec_duties,semester,intern_year,work_sche,digital_sig) VALUES( <cfqueryparam value="#form.stu_first#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.stu_last#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.stu_id#" cfsqltype="cf_sql_integer" />, <cfqueryparam value="#form.sup_name#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.sup_email#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.sup_phone#" cfsqltype="cf_sql_integer" />, <cfqueryparam value="#form.emp_name#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.emp_add#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.spec_obj#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.spec_duties#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.semester#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.intern_year#" cfsqltype="cf_sql_integer" />, <cfqueryparam value="#form.work_sche#" cfsqltype="cf_sql_varchar" />, <cfqueryparam value="#form.digital_sig#" cfsqltype="cf_sql_varchar" /> ) </cfquery> 加入实习 (学生第一名,学生最后一名,学生id,学生姓名,学生电子邮件,学生电话,学生姓名,学生地址,学生地址,学生任务,学生职责,学期,实习年,工作计划,数字信号) 价值观( , , , , , , , , , , , , , )
    如果你能发布你收到的错误,那会有帮助

    还有一个巨大的建议——在插入的值上使用cfqueryparam来防止SQL注入,例如:

    <cfqueryparam value="#form.stu_first#" cfsqltype="cf_sql_varchar">
    
    
    

    仔细检查你的
    #
    符号和记号,更不用说这些变量的存在了。有时,我会在插入之前放置一个
    ,启用调试输出后,您可以向下滚动查看所有表单变量。然后我将复制/粘贴这些内容,以确保拼写正确。

    您收到了什么错误?如果不知道错误是什么,很难排除错误。根据包含的代码,您没有结束标记
    parameterExists
    自ColdFusion MX起已被弃用,因此如果您使用的是可能会给您带来麻烦的更高版本。请编辑您的问题,以包含您收到的实际错误消息。我们将能够提供更多的帮助。列0 ID CFQUERY LINE 24 RAW_TRACE在cfsubmit2ecfm1505563048.runPage(D:\web\careers\academicalinterpaint\submit.cfm:24)模板D:\web\careers\academicalinterpaint\submit.cfm类型cfml对于许多数据库引擎,这是不必要的。只要
    VALUES
    列表中指定的字段的数量、类型和顺序与表定义中指定的相同,原始问题的语法就有效。我认为最好的做法是包括您建议的字段列表,但这不可能是导致错误的原因(这不是本文所指定的,否则我只是从那里诊断)。第0栏ID CFQueLead 24在CFasMIT2ECFM1555 63048中运行。模板D:\web\careers\AcademicalInterporation\submit.cfm类型CFML