如何在c#中转换此函数PHP?

时间:2015-09-27 19:34:42

标签: c# php

我正在研究PhpC#的一些代码,并希望知道如何在C#中转换此代码?

$data = {
    //field name in the database, amount to be inserted
    'name'   => 'myName',
    'email'  => 'myEmail',
    'number' => 9999999999
};

function DBCreate($table, array $data, $ReturnId = false){
    //table prefix
    $table  = DB_PREFIX . '_' . $table;

    //clean sql injection
    $data   = DBEscape($data);
    //creates an array based on database fields
    $fields = implode(',', array_keys($data));
    $values = "'".implode("', '", $data)."'";
    //query sql
    $query = "INSERT INTO {$table} ( {$fields} ) VALUES ( {$values})";
    //call function that executes the query
    return DBExecute($query, $ReturnId);
}

此代码将数据插入任何数据库表,只传递表名和数组,此数组由数组组成,其中key是数据库中的字段名称,value是值插入到数据库中,如有必要,最后一个参数可以恢复在数据库中输入的ID的值。

或者哪些元素可以学习转换?

但得到了它:

 void DBCreate(string table, Dictionary<string,string> Data) {
    var fields = string.Join(", ",Data.Keys.ToArray());
    var values = string.Join(", ",Data.Values.ToArray());

    string sql = "INSERT INTO " + table + " ( " + fields + " ) VALUES ( " + values + " )";

    print(sql);     
 }

使用:

 var myDictionary = new Dictionary<string, string>() { 
        {"Name", "MeuName"},
        {"Passowrd", "mypass"}
 };
    DBCreate("tabela", myDictionary);

这是 Usuario 类:

public string       Name = "";   
public string       Passowrd = "";
public DateTime     Date = Convert.ToDateTime("01/01/1991");
public string       Email = "";
public string       Username = "";
public int          Cash = 0;
public int          GP = 0;
public string       IdCell = "";

如何获取Usuario类变量的所有名称,或者如何将其转换为列表?

我决定:

BindingFlags bindingFlags = BindingFlags.Public | 
BindingFlags.NonPublic | 
BindingFlags.Instance | 
BindingFlags.Static;

Usuario user = new Usuario();

user.setName("Something");
user.setEmail(123456789);

var newUser = new Dictionary<string, string>();

foreach (FieldInfo field in typeof(Usuario).GetFields(bindingFlags))
{
      print(field.Name + " Values => " + field.GetValue(user).ToString());
      newUser.Add(field.Name, field.GetValue(user).ToString());
}

谢谢大家!

2 个答案:

答案 0 :(得分:1)

好吧,似乎代码正在构建一个包含多个值对的表名和插入查询。 我不做C#,但是对于&#34;插入sql c#&#34;进行一些研究应该很容易。例如here是我找到的第一个结果。

答案 1 :(得分:1)

您想保留PHP用作数组的有序映射吗?由于PHP使用有序关联数组,因此您可以使用.NET中提供的ordered dictionarykey value pairs列表。其余部分是逃避价值和建立字符串。您必须明确定义返回类型。