2015-09-27 101 views
0

我正在学习PhpC#的一些代码,并希望知道如何在C#中转换此代码?如何在c#中将此函数转换为PHP?

$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()); 
} 

谢谢大家!

+3

这不是一个翻译服务 – 2015-09-27 19:40:59

+0

你可以通过学习[C#中的字符串](https://msdn.microsoft.com/en-us/library/ms228362.aspx)和[ADO.NET基础知识] (https://msdn.microsoft.com/en-us/library/e80y5yhx.aspx)。 – sudheeshix

+0

你能否至少解释一下这样做,有人可能会给你一个方法来做到这一点,而不会很好地了解PHP。 – Skylark

回答

1

是否要保留PHP作为数组使用的有序映射?由于PHP使用有序关联数组,因此您可以使用.NET中提供的ordered dictionarykey value pairs列表。其余的部分是逃避价值观和建立字符串。你将不得不显式定义返回类型。

+0

是的,所以我需要将对象转换为Dicionary,这将帮助我很多! thnk –

+0

为了将来的参考,来自链接/一些代码示例的引用在答案中通常很好 – enigma

1

那么它似乎代码是建立一个表名称和插入查询与多个值对。 我不做C#,但应该放弃一些关于“insert sql c#”的研究。例如我发现第一个结果是here

+0

我有一个对象,每个属性是数据库中相应表字段的名称,我正在寻找方法将此对象转换为数组,但没有成功,我有一个使用'Parameters.Add'的数据输入函数更多我不想写所有'query's' –