1
我在做一項調查,目前數據庫有19個表格和大約100列。所有這些將被插入,因爲它們是必需的字段。我正在尋找一種優雅和高效的方式插入到許多表和列中。到目前爲止,我想到的是創建一個多維數組,其中第一個鍵作爲表名,第二個鍵作爲字段的列名。像下面的東西:插入大量表格的優雅高效方法MySQL
$tableArray = array(
'ownerTable' => array(
'firstNameRow' => $firstName,
'lastNameRow' => $lastName
),
'dealerTable' => array(
'dealerNameRow' => $dealerName,
'dealerCityRow' => $dealerCity
)
);
foreach($tableArray as $row => $key) {
foreach($tableArray[$row] as $row1) {
$sql = "(INSERT INTO $tableArray[$key] ($tableArray[$row]) VALUES ($row1)";
}
}
我沒有測試這段代碼,但我想這些行的東西會工作。我認爲我看到的一個問題是針對每個列的單獨INSERT
,而不是每個表的INSERT
。我總是可以編寫代碼來一次加載數組中的所有值來解決這個問題,但是在我開始走開之前,我想確保我沒有犯大錯,並且浪費時間,如果有的話更好的方式來做到這一點。
對於調查來說,19個表格和100列看起來效率不高。 – helion3
我會作爲答覆發佈,但我不確定這一點。也許把它分解爲'$ sql =「insert into」;'=>你的2個foreach函數然後是'$ sql。= $ tableArray [$ key]。「(」。$ tableArray [$ row]。「)VALUES(」 。$ row1。「)」;'然後運行'mysql_query($ sql);'我希望這是有道理的,我在我的手機上,但你的表名/值應該在循環中,然後在你的循環之外運行你的查詢。那麼它應該只是一個插入,如果我的邏輯是正確的 – KyleMassacre
@ helion3由低效率是什麼意思?對於表的數量或許多表的列數很少的表?我可以誠實地將列拆分成更多的表格,但是由於大多數的膨脹是來自簡單的是或否的答案,所以它們可能無關緊要,因爲它們全都相互關聯。 – Yamaha32088