2015-09-27 41 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' –