2011-03-02 103 views
1

使用PHP PDO執行多個SQL查詢的最佳實踐是什麼?使用PHP PDO執行多個SQL查詢的最佳實踐

我有4個表,每個表都在MyISAM上運行。因此他們沒有外鍵支持。這是一對多的設計,其中有一個主表,另一個表包含以ID形式對主表的引用。

現在,我所做的是運行第一個查詢以從主表中獲取ID。一旦執行該操作,然後執行另一個查詢以使用第一個查詢中的ID查詢其他表。兩個查詢的結果然後合併在一起(array_merge),然後顯示給用戶。

這是我的代碼到目前爲止。我認爲你會得到這個要點,你很可能會說我是一個PHP初學者。 :)

$sql1 = "SELECT * FROM student_records WHERE name=? LIMIT 1"; 
$stmt1 = $db->prepare($sql1); 
$stmt1->execute(array($name)); 
$e11 = $stmt1->fetch(); 

$id = $e1['id']; 

$sql2 = "SELECT file_name FROM images WHERE id=? LIMIT 1"; 
$stmt2 = $db->prepare($sql2); 
$stmt2->execute(array($id)); 
$e2 = $stmt2->fetch(); 

$e = array_merge($e1, $e2); 

我認爲上面的代碼有點重複和多餘。有沒有關於如何改善這一點的建議和提示?

+0

的可能重複[多個MySQL查詢到一個PHP二維數組(HTTP://計算器。 COM /問題/ 1172272 /多MySQL的查詢成 - 一-PHP-二維陣列) – outis 2011-03-02 14:42:08

回答

2

使用joins,並且不使用SELECT *(只選擇您需要的列):

SELECT file_name 
    FROM student_records AS sr 
    JOIN images AS i ON sr.id = i.id 
    WHERE sr.name=?