Лучшая практика для выполнения нескольких запросов SQL с использованием PHP PDO - PullRequest
1 голос
/ 02 марта 2011

Как лучше всего выполнять несколько SQL-запросов с помощью PHP PDO?

У меня есть 4 таблицы, и каждая из них работает на MyISAM.Как таковые они не имеют поддержки внешнего ключа.Это схема «один ко многим», в которой есть 1 главная таблица, а другая таблица содержит ссылку на основную таблицу в виде идентификаторов.

Пока я выполняю первый запрос кполучить идентификатор из основной таблицы.После этого я выполняю другой запрос, чтобы запросить другие таблицы, используя идентификатор из первого запроса.Результаты обоих запросов затем объединяются (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);

Я думаю, что приведенный выше код несколько повторяется и является избыточным.Есть ли какие-либо предложения и советы, как я могу улучшить это?

1 Ответ

2 голосов
/ 02 марта 2011

Используйте объединения и не используйте SELECT * (выберите только нужные столбцы):

SELECT file_name 
  FROM student_records AS sr
    JOIN images AS i ON sr.id = i.id
  WHERE sr.name=?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...