почему я не могу вставить в таблицу MySQL из Coldfusion8?

Я использую 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. Если да, то с чего начать поиск?

Спасибо за помощь!

EDIT:
Когда я пытаюсь вставить запись, как указано выше, идентификатор таблицы продолжает увеличиваться, но новая запись не отображается. Итак, идентификаторы создаются, но я не вижу никаких записей. Не уверен, что это поможет.

EDIT2:
я добавил параметр результатов в Cfquery. Если я сброшу результаты, я получу:

CACHED: false
EXECUTIONTIME: 60
GENERATED_KEY: 42
RECORDCOUNT: 1
SQL: INSERT INTO teilnehmer(iln)
VALUES("1234567891231")

person frequent    schedule 03.06.2012    source источник
comment
Можете ли вы увидеть результат, если вы сделаете оператор select сразу после вставки.. SELECT * FROM teilnehmer.. затем выгрузите результат оператора select?   -  person Jason    schedule 04.06.2012
comment
Вы сказали, что это работает изнутри MySQL. Я не слишком знаком с этим, но вы используете ту же учетную запись в конфигурации источника данных? В соответствии с тем, что спрашивает @Jason, кажется, что записи создаются, просто не видны в учетной записи, которую вы используете в MySQL.   -  person Barry    schedule 04.06.2012
comment
.. тем более, что ваш дамп result доказывает, что insert был успешным, и присвоенное значение id=42. Это подтверждает подозрения @Barry.   -  person Leigh    schedule 04.06.2012
comment
@Jason: хороший совет. Записи вставляются, их просто не видно. хм. где конфигурация источника данных...?   -  person frequent    schedule 04.06.2012


Ответы (1)


Глупый я... У меня был вышеупомянутый вызов базы данных INSERT внутри CFtransaction, и после этого были некоторые операторы, один из которых содержал ошибку, из-за которой все предыдущие операторы перехода были отменены. Таким образом, я предполагаю, что записи так и не попали в базу данных, поскольку при вызове хранимой процедуры увеличивался только ключ id.

person frequent    schedule 04.06.2012
comment
Ага, именно так и должно быть. Цель транзакции состоит в том, чтобы убедиться, что все операторы завершаются успешно или вместе. Поэтому, если хотя бы один терпит неудачу, все операторы откатываются. Однако автоматически увеличивающиеся идентификаторы обычно не восстанавливаются. stackoverflow.com/questions/5537296/ - person Leigh; 04.06.2012