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 value 部分中的含义是什么(这是确定变量的 C# 方式,还是我不知道 MySQL 语法的东西)。

我还想知道我对本节的理解是否正确——它或多或少只是一个 SQL 插入语句,然后是相关变量的定义。我说得对吗?

4

1 回答 1

5

与 C# 无关,它们只是查询的命名参数。就像您在编写 PHP 时在 PDO/MySQLi 中使用(阅读:应该使用)一样。

另请注意,这不是字符串替换,它是一个准备好的语句,允许将参数传递给它。您可以将准备好的语句想象成一个预定义参数的方法调用,而不是将一长串数据(对潜在的注入开放)写入数据库以直接执行。

于 2012-10-05T13:44:26.573 回答