1

ASP javascript を使用して、ユーザーから渡されたパラメーターを使用して MySQL データベースから選択しています。準備済みステートメントを使用してこれを行いたいと思います。VB スクリプトで例を見たことがありますが、ASP JS ではわかりません。私は通常、次の方法でそれを行います。

var adoConnection = Server.CreateObject("ADODB.Connection");
adoConnection.Open("dsn=my-dsn;uid=userid;pwd=password;");


var getAdmin = "SELECT * FROM users WHERE username = '"+String(Request.QueryString("username"))+"'";
var rsAdmin = adoConnection.Execute(getAdmin);

これを変更して、より安全な方法でユーザーデータを渡したいのですが、誰か助けてもらえますか?

4

3 に答える 3

2

ASP でクエリを正しくパラメータ化するには、 ADODB.Connectionを直接使用する代わりに、 " ADODB.Command " を使用してクエリを実行する必要があります。ADODB.Commandには、必要に応じて「 .CreateParameter() 」という名前のメソッドがあります。

サンプルコード

'-------------------------------------------------------------------'
var oCmd = Server.CreateObject("ADODB.Command")
var sSQL = "SELECT username, action FROM userlog WHERE event_date < ? ;";
oCmd.CommandText = sSQL
oCmd.ActiveConnection= oConn
'-------------------------------------------------------------------'
var oPar = oCmd.CreateParameter("event_date",7,1,,dDate); 'Date
oCmd.Parameters.Append(oPar);
'-------------------------------------------------------------------'

....すべてのパラメータが追加されるまでこれを行い、....

var oRS = oCmd.Execute();

必要に応じてレコードセットを操作します

その他のリソース

ADODB ドキュメント

MSDN の例

于 2013-04-30T13:48:48.500 に答える
0

ブラウザー側のコードから直接データベースを呼び出すことは、ページにデータを取得するための推奨される方法ではありませんが (最近ではほとんどの人が AJAX/JSON リクエストを好みます...)、ストアド プロシージャ呼び出しに対する SQL ステートメント。

詳細については、http://andrewu.co.uk/clj/stored_procedures_with_jscript/を参照してください。

于 2013-04-30T13:47:09.290 に答える
0

ASP JavaScript は通常、JScript と呼ばれます。stackoverflow で「[jscript] [mysql]」を検索すると、おそらくあなたの質問に答える質問が表示されます。

パラメータ化されたSQLクエリでADODBコマンドが実行に失敗する

追加のサンプルについては、「msdn jscript ado」をグーグルで検索することもできます。

于 2013-04-30T11:52:25.940 に答える