[Macromedia] [Oracle JDBC Driver] [Oracle] ORA-04054:数据库链接不存在

时间:2013-12-15 23:21:19

标签: oracle coldfusion

我正在尝试使用ColdFusion创建一个简单的登录页面但是我遇到了错误ORA-04054。无论我给#FORM.login_password#值赋予哪个值,我的应用都会尝试连接到#FORM.login_password#.server.com,如果我尝试使用

登录

login_email =“test@test.test”

login_password =“test”

ColdFusion将尝试连接到test.server.com并返回错误。我最初认为这可能是由于多个变量具有冲突的名称,但是在无数次重命名我的所有变量后,我已经没有想法了。

FORM:

<form action="login.cfm" method="post">
    E-mail: <input type="email" name="login_email" required placeholder="E-mail">
    Password: <input type="password" name="login_password" required placeholder="Password">
    <input name="submit" type="submit" Value="Search Parts">
</form>

LOGIN.CFM:

<cfinclude template="header.cfm">
<cfinclude template="base.cfm">
<cfquery name="*****"
datasource="*****"
username="*****"
password="*****">
SELECT *
FROM tbUser
WHERE password = #FORM.login_password#
AND email = #FORM.login_email#
</cfquery>
<cfoutput>
    <cfif #userLogin.RecordCount# eq 0>
        FAILURE
    <cfelse>
        SUCCESS
    </cfif>
</cfoutput>


<cfinclude template="footer.cfm">

2 个答案:

答案 0 :(得分:3)

答案尽管让我筋疲力尽,但最终还是很简单:我没有用引号封装我的查询值:

    <cfquery name="*****" datasource="*****" username="*****" password="*****">
        SELECT *
        FROM tbUser
        WHERE password = '#FORM.login_password#'
        AND email = '#FORM.login_email#'
    </cfquery>

    <cfif userLogin.RecordCount eq 0>
        FAILURE
    <cfelse>
        SUCCESS
    </cfif>

答案 1 :(得分:2)

你应该使用cfqueryparam。这是一种最佳实践,我认为可以解决问题。 像那样:

and email = <cfqueryparam value="#FORM.login_email#" cfsqltype="cf_sql_varchar">