C#和MySQL - 字符串替换

时间:2012-10-05 13:41:57

标签: c# mysql

这主要是我尝试阅读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插入语句,后面跟着有问题的变量的定义。我是对的吗?

1 个答案:

答案 0 :(得分:5)

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

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