我正在开发ColdFusion9和MySQL 5.0。我不确定为什么查询名称变量在插入和更新查询中未定义,即使我在查询之前声明了这些变量。这是示例代码。
<cfset variables.test_update = QueryNew('')>
<cfset variables.res = ''>
<cfquery name="variables.test_update" datasource="dsnTest" result="variables.res">
INSERT INTO test(
name
, rank
)VALUES(
'test'
,23
)
</cfquery>
<cfdump var="#variables.res#">
<cfdump var="#variables.test_update#">
此处结果属性值可用,但对于查询名称变量,它抛出未定义的错误,&#34;元素TEST_UPDATE在VARIABLES中未定义。&#34;
我知道,insert,update和delete查询不会通过查询名称属性返回任何结果集。但是,我不确定,为什么在查询执行后查询名称变量是否未定义?
请帮忙。
答案 0 :(得分:7)
ColdFusion使用从DB驱动程序返回的任何内容填充variables.test_update
,在本例中为[nothing]。
CF认为null变量未定义。永远有。
答案 1 :(得分:0)
除了Adam所说的,如果你想为新记录返回新的ID(如果你的表设置为处理这个),你可以按如下方式更改它:
INSERT INTO test(
name
, rank
)VALUES(
'test'
,23
);
Select LAST_INSERT_ID() as newid;
如果您转储&#34; variables.test_update&#34;,您会看到它现在不为空,为列#34; newid&#34;返回一行。