我正在構建一個相當簡單的網站來跟蹤一些工作銷售情況。它涉及一個mysql數據庫,每個條目有多個表。大多數情況下,這種關係是被割斷和乾燥的。不過,我有一個評論表,它將存儲多個評論以供同一個銷售。我在註釋表中有一個外鍵與主銷售表的ID綁定。我在總表和銷售表之間有一個類似的安排,因爲它存儲了同一個銷售ID的多個總額。將這些插入數據庫的最佳方法是什麼?目前,我正在插入註釋並獲取該行的ID,然後插入總量並獲取ID,然後使用註釋ID和總體ID將插入插入到銷售表中。有沒有更有效的方法,而不是做5個查詢?PHP MYSQL數據庫結構,一個條目的多個查詢
- 編輯:這是當前的代碼。我對此很新,所以我不得不查找程序來查看你的意思。這似乎基本上是我在做什麼,而是爲它創建一種方法,一旦我找出最有效的方法,我將會這樣做。
//Prepare the Queries
//Insert Gross Amounts Query
$grossQ = "INSERT INTO gross (commGross, storeGross, manGross, fiGross, flatGross) VALUES ('$commGross', '$storeGross', '$manGross', '$fiGross')";
//Insert Comments Query
$commentsQ = "INSERT INTO comments (comment, dealcomment, grosscomment) VALUES ('$otherComments', '$dealComments', $grossComments')";
//Insert Deal Query
$q = "INSERT INTO sales (make, model, location, vehtype, saletype, manager, county, flat, unitcount, armoramount, controlnumber, salesman, stock) VALUES ('$make', '$model', '$location', '$vehType', '$saleType', '$managerName', '$county', '$flat', '$unitCount', '$armorAmount', '$controlNumber', '$salesmanName1', '$stock')";
//Make database connection
$db = new db('palm_sales');
//Execute gross query and get the id of the row
$db->execute($grossQ);
$grossID = $db->getLastID();
//Execute comments query and get the id of the row
$db->execute($commentsQ);
$commentsID = $db->getLastID();
//Build Main Query
$q = "INSERT INTO sales (make, model, location, vehtype, saletype, manager, gross, comments, county, flat, unitcount, armoramount, controlnumber, salesman, stock) VALUES ('$make', '$model', '$location', '$vehType', '$saleType', '$managerName', '$grossID', '$commentsID', '$county', '$flat', '$unitCount', '$armorAmount', '$controlNumber', '$salesmanName1', '$stock')";
//Execute Main Query
$db->execute($q);
if(mysql_affected_rows() > 0)
{
echo "Success!";
}
else echo "Error: ".mysql_error();
你能寫一個存儲過程嗎? –
你可以發佈你的代碼嗎?最有效的方法可能是將您的插入在預先觸發器和觸發器之間進行拆分 –
您應該編寫一個存儲過程,或者直接使用sql事務來確保一切正常或nok。 –