ColdFusionコードに問題があります。 単純なフォームがあり、データベースに値を追加するだけです。私はエラーを取得しておいてください。 "エラーコード206 [Macromedia社] [SQLServerのJDBCドライバ] [SQLServerの]オペランドタイプ衝突:int型は、テキストと互換性がありません"データベースにデータを送信しないColdFusionフォーム
ここに私のコードです:
<div class="form">
<form method="post" name="color">
ID:
<input type="text" name="id" id="id">
Color Name:
<input type="text" name="color" id="color">
Hex Value:
<input type="text" name="hex" id="hex">
<input type="submit" value="Submit">
</form>
</div>
<div>
<cfif structKeyExists(form, "color")>
<cfquery datasource="bentest" name="insertColor">
USE [benTest]
INSERT INTO color_codes
(id ,color, hexvalue)
VALUES
(#form.id#, '#form.color#', #form.hex#)
</cfquery>
<p>You've added a color to the database!</p>
</cfif>
</div>
そして、もし#form.color#から一重引用符を削除します。「無効な列名」(入力したもの)が表示されます。あなたのidは、同様のテキストフィールドであるよう
INSERT INTO color_codes
(id ,color, hexvalue)
VALUES
(#form.id#, '#form.color#', '#form.hex#')
実は、それが見えます:
すべての変数クエリパラメータでcfqueryparamを使用してください。次に、データ型のキャストや値を引用する必要があるかどうかを心配する必要はありません。また、SQL Serverのようなデータベースでは特に重要です。なぜなら、複数のSQL文の実行をサポートする、つまりSQLインジェクションに対して脆弱であるからです。 cfqueryparamを使用すると、[bind variables](https://en.wikipedia.org/wiki/Bind_variable)を使用していることを意味します。これには、あらゆる種類の大きな利点があります。最も重要なのはSQLインジェクションの保護です。 – Leigh
ありがとう!いくつかの人々がcfqueryparamについて言及しましたが、私はそれをどのように使用するかについてはあまりよく分かりませんでした。これは私にとって理にかなっている!ありがとうございました! – Benjadock
私はそれらをcfqueryparamに置き換えました。それは完璧に動作します、ありがとう@Jedihomer Townend&@Leigh! – Benjadock