0

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 に追加しました。結果をダンプすると、次のようになります。

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

1 に答える 1

0

愚かな私... CFtransaction内で上記のINSERTデータベース呼び出しがあり、その後いくつかのステートメントがあり、そのうちの1つにエラーが含まれていたため、以前のすべての遷移ステートメントが元に戻されました。したがって、ストアド プロシージャが呼び出されたときに id-key だけが増加するだけで、結局、レコードがデータベースに入ることはなかったと思います。

于 2012-06-04T07:47:00.100 に答える