【发布时间】:2012-06-03 19:56:08
【问题描述】:
我正在使用 Coldfusion8 和 MySQL 并尝试插入到表中。
不管我是否使用 cfquery,它都不起作用:
<cfquery datasource="dns" result="some">
INSERT INTO users(iln)
VALUES("1234567890123")
</cfquery>
<cfdump output="path.txt" var="#some#">
或存储过程:
<cfstoredproc procedure="proc_insert_user" datasource="dns">
<cfprocparam type="In" cfsqltype="cf_sql_varchar" value="1234567890123" maxlength="13">
</cfstoredproc>
与 MySQL 内部的过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_insert_user`(IN `user_iln` VARCHAR(13))
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY INVOKER
COMMENT ''
BEGIN
INSERT INTO users (iln)
VALUES(user_iln);
END
如果我从 MySQL 内部运行该过程,它就可以工作。但是从 Coldfusion 我无法访问数据库。如果我在 cfquery/storedProc 之前和之后设置一个标志,两个标志都会显示,所以我假设没有错误(我也没有得到任何错误)
问题: 我想我在 MySQL/Coldfusion 中缺少一些设置。如果是这样,我应该从哪里开始搜索?
感谢您的帮助!
编辑:
当我尝试如上所述插入记录时,表 ID 不断增加,但没有显示新记录。所以正在创建 ID,但我看不到任何记录。不确定这是否有帮助。
EDIT2:
我在 Cfquery 中添加了一个 results 参数。如果我转储结果,我会得到:
CACHED: false
EXECUTIONTIME: 60
GENERATED_KEY: 42
RECORDCOUNT: 1
SQL: INSERT INTO teilnehmer(iln)
VALUES("1234567891231")
【问题讨论】:
-
如果你在插入之后执行一个select语句,你能看到结果吗? SELECT * FROM teilnehmer .. 然后dump out select statemet的结果?
-
你说这在 MySQL 内部有效。我对此不太熟悉,但是您是否在数据源配置中使用相同的帐户?按照@Jason 的要求,似乎有可能正在创建记录,只是在您在 MySQL 中使用的帐户中不可见。
-
.. 特别是因为您的
result转储证明insert是成功的,并且分配的值 id=42。这支持了@Barry 的怀疑。 -
@Jason:很好的提示。记录被插入,它们只是不可见。嗯。数据源配置在哪里...?
标签: mysql coldfusion insert