2011-03-02 106 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=?