2

これは主に C# を読もうとしている私です (Python、PHP、Javascript は知っていますが、C# は初めてです)。

ここで解釈しようとしているのは MySQL かもしれません。

私はコードのこのセクションを持っています:

 sql_query = "insert into peer_review_info " +
          " (review_id, emp_id, comments_positive, comments_negative )" +
          " values(?review_id, ?employeeid, ?strength, ?weakness) ";
    myCommand = new MySqlCommand(sql_query, connection);            
    Trace.Write("strength = ", strength );
    Trace.Write("areaofimprovement = ", areaofimprovement);
    myCommand.Parameters.Add(new MySqlParameter("?review_id", ViewState["review_id"].ToString()));
    myCommand.Parameters.Add(new MySqlParameter("?employeeid", ViewState["employeeid"].ToString()));
    myCommand.Parameters.Add(new MySqlParameter("?strength", strength));
    myCommand.Parameters.Add(new MySqlParameter("?weakness", areaofimprovement));

sql_query 値セクションのが何を意味するのか疑問に思ってい?ます (変数を決定する C# の方法であるか、MySQL 構文について認識していないものであるか)。

また、このセクションの理解が正しいかどうかも疑問に思っています。それは多かれ少なかれ単なる SQL 挿入ステートメントであり、その後に問題の変数の定義が続きます。私はそれについて正しいですか?

4

1 に答える 1

5

具体的には C# とは関係ありません。クエリの名前付きパラメーターにすぎません。PHP を書いているときに PDO/MySQLi で使用する (読む: 使用する必要がある) のと同じです。

また、これは文字列の置換ではなく、パラメーターを渡すことができる準備済みステートメントであることにも注意してください。プリペアド ステートメントは、1 つの長いデータ文字列 (インジェクションの可能性がある) をデータベースに直接書き込んで実行するのではなく、パラメーターが事前定義されたメソッド呼び出しのように考えることができます。

于 2012-10-05T13:44:26.573 に答える