2011-08-15 18 views
0

ログにこのエラーが表示されていますが、解決方法はわかりません。nvarcharの値 'quiz.jpg'をデータ型intに変換するときに変換に失敗しました

"nvarchar値 'quiz.jpg'をデータ型intに変換するときに変換に失敗しました。

私は現在ColdFusion 9を使用しています。何らかの理由でサイトが画像ファイルをデータベースなどに解析しようとしているようです。

ご協力いただければ幸いです。

おかげ

+0

。ここをクリックしてください:http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Variables_26.html。それはCF8ですが、似ているはずです – jschorr

+2

これはSQLインジェクション攻撃の結果ですか?あなたのアプリに、「quiz.jpg」という画像やテキストがある場所がありますか? –

答えて

2

あなたは<cfqueryparam>を使用していますか?

私はあなたがこのような何かを持っていることが推測:

<cfquery param value="#myVar#" cfsqltype="cf_sqltype_integer" /> 

cfSqlTypeのはcf_sqltype_varcharする必要があります。

そうでない場合は、問題のコードであなたの投稿を更新してください。それは非常に役に立ちます。

+0

これは問題の原因となっているコードです...上記の行は、コード... – Geo

+0

さて、あなたのDBをチェックしてください。問題の列(ArticleID?)はIntとして定義されていますか?奇妙なことに、 'ArticleID'という列に 'quiz.jpg'という値を入れることになります –

+0

私はそれを修正しました。どういうわけか私の記事のいくつかが奇妙なIDを取得していたので、ページの上部に "if not(isNumeric)"を追加し、この事が起きたときに "/"にリダイレクトされました...返信ありがとうございました – Geo

0

エラーが発生したコード行や、テンプレート全体が助けになるなど、エラーの詳細がさらに必要になると思います。より多くの情報がない場合、ジェイソンの答えはそうであるようです。

0

これは、nvarchar列とint列を連結しようとしているクエリがあるように思えます。このような残念ながらSQL Serverが暗黙的に連結するためにvarchar型に整数を変換しませんので、あなたがあなたの整数を変換する必要があります

SELECT MyString + MyInt FROM MyTable 

として

。あなたは整数に文字列(nvarchar型の)カーストしようとしているように見えます

SELECT MyString + Convert(varchar(20), MyInt) FROM MyTable 

または

SELECT MyString + Cast(MyInt AS varchar(20)) FROM MyTable 
関連する問題