【问题标题】:Pass PHP value to ColdFusion将 PHP 值传递给 ColdFusion
【发布时间】:2013-05-07 08:49:11
【问题描述】:

我正在尝试使用 POST 方法将值从 PHP 传递到 ColdFusion 页面。它实际上是一个只有一个文本字段和提交按钮的表单。问题是如何在 ColdFusion 页面上“捕获”该值以在 SQL SELECT 语句中使用它。

PHP 页面:

<form  action="adminlog.cfm" method="post">
  <input  type="text" name="admin"  placeholder="Admin" required >
  <input  type="submit" value="admin"/>
</form>

ColdFusion 页面:

<cfif Form.admin NEQ "">
  Client ID is still #Form.ClientID#
<cfelse>
  No value supplied for ClientID
</cfif>

<cfquery name='myQuery' datasource='MyDSN'>
  SELECT * FROM admin WHERE  aID = <cfparam name="Form.admin" />
</cfquery>

我得到的只是:

执行数据库查询时出错。上线

<cfquery name='myQuery' datasource='MyDSN'>

如果我从 SELECT 语句中删除 WHERE 条件,则 id 显示数据库中的记录没有问题。所以我想这与传递参数有关。

【问题讨论】:

  • &lt;input type="text" name="admin" placeholder="Admin" required &gt; "required" 可能没有做任何事情

标签: php coldfusion parameter-passing


【解决方案1】:

您想使用 cfqueryparam,而不是 cfparam。

如果他们为该字段提供了值,您可能只想执行此查询。将其添加到您的 IF 语句中:

<cfif Form.admin NEQ "">    
     <cfquery name='myQuery' datasource='MyDSN'>
         SELECT * FROM admin 
         WHERE  aID = <cfqueryparam value="#Form.admin#" />
     </cfquery>
<cfelse>
       No value supplied for ClientID
</cfif>

【讨论】:

  • 是的!!!完美的!!!谢谢邓肯!!!另一个问题 - 为什么我的表单在我打开页面时已经有一个值......?
  • 为了彻底,你应该在你的查询参数标签中指定一个数据类型。
  • @Dims - RE cfif Form.admin NEQ "":仅仅因为参数不为空并不意味着它包含预期的值类型。如果 aID 列是数字(日期等),请验证 Form.admin 也是。
猜你喜欢
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多