2015-01-14 32 views
0

這個問題有兩方面的含義 - a)我是否以有效的方式接近它,以及b)如何在php中完成。如何在php中編寫一個通用的db插入函數

我在一個遺留站點中有數百個php表單,我正在嘗試清理代碼並模塊化它。

所以我正在創建一個數據庫函數文件,我想在其中使用一個通用的INSERT函數。 現在,每個表格都會有一個完全不同的表格,因此插入不同的字段。

我找不到寫這個功能的最好辦法 - 我想是這樣的:

function insert_form_data($table, $arr_fields, $arr_values) 

就這樣,我不能確定如何構建myqli查詢功能中使用的字段和值陣列當他們不明時。

所以這是一個有效的方法來做到這一點,如果是這樣,請幫助語法。或者我應該花更多的時間,現在一切重構將使用MVC結構,在這種情況下,每個表/形式將是一個「模範」等。

THX

回答

2

你想要的東西很簡單的一個例子是

public function insert_form_data($table, $arr_fields, $arr_values) 
{ 

    $sql = 'INSERT INTO '.$table.' ('.implode(", ", $arr_fields).') VALUES ('.implode(", ", $arr_values).')'; 

    return mysql_query($sql); 

} 

如果您使用的是PDO連接,則可以相應地更改它。更好的,如果你做完整的類,檢查構造函數的連接,並執行所有插入更新刪除功能。

+0

也許不顯示'的mysql_query()'函數。你會很快被嘲笑,因爲它是一個廢棄的圖書館。 ('PDO'或'mysqli'是去這裏的方式) – Darren

+1

我只是想說明事情是如何完成的,這僅僅是爲了演示。這就是爲什麼我提到使用PDO –

+0

我知道,這就是爲什麼我upvoted它:) – Darren

0

方法實現

public function addData($_tableName, $_dataString){ 
    $qr_string = 'INSERT INTO `'.$_tableName.'` SET '.$_dataString; 
    $this->_message = ($this->res = $this->mysqli->query($qr_string)) ? 'Success' : $this->mysqli->error ; 
    return $this->_message; 
} 

希望這有助於

相關問題