1

私はこれを100回やったので、これは私を非常に困惑させていますが、今は失敗しました.

CF パラメーターを使用して基本的なクエリの更新を行っていますが、テーブルの主キーが空の値を渡しているため、重大なエラーが発生しています。

にハードコードされた番号を入力しても、次の#form.id placeholder#ようになります。

CFSQLTYPE CF_SQL_NUMERIC のデータ '' が無効です。

これが私のコードベースです

<cfquery name="updateIdea" datasource="#request.db#">
            UPDATE freshideas
            SET subject = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.subject#" null="no" />,
                content = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.content_text#" />,
                postmonth = <cfqueryparam cfsqltype="cf_sql_numeric" value="#form.postmonth#" />,
                postyear = <cfqueryparam cfsqltype="cf_sql_numeric" value="#form.postyear#" />,
                imglink = <cfqueryparam cfsqltype="cf_sql_varchar" value="#image#" />,
                oindex = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.oindex#" null="no" maxlength="3" />
            WHERE id = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.id#" null="no" />
        </cfquery>

挿入は正常に機能し、列 ID は auto_increment int(5) です。

4

2 に答える 2

1

ロングショットですが、テーブルに最近変更を加えた場合、スキーマのキャッシュに問題がある可能性があります。CF サーバーを再起動するか、クエリにスペースを追加してみてください。詳細については、こちらの投稿をご覧ください。

http://www.coldfusionmuse.com/index.cfm/2005/4/29/dbschemaChange

于 2012-03-31T12:53:02.213 に答える
1

私は現在のコードベースでこれをたくさん得ています。cfqueryparams を追加するとき、開発者は値を想定しており、予想される整数が空の文字列である場合があります。

空の文字列/null が適切な場合は、これを使用してください http://www.carehart.org/blog/client/index.cfm/2007/3/5/cfqueryparam_null

私の場合、整数は整数である必要があるため、通常、その変数が 0 レコードを返すクエリのように設定される方法に問題があります。

于 2012-03-31T14:42:04.730 に答える