У меня есть две таблицы с именами users
и contacts
.Я хотел бы удалить записи из двух таблиц одновременно.Для этого я сейчас использую приведенный ниже код.
public function delete($userId, $contactId) {
/* Since Values cannot be mixed (the Numbers) with control flow logic
(the commas) with prepared statements needs one placeholder per Value. */
//As many question marks as array entries; the last one needs no comma
$questionMarks = str_repeat("?,", count($userId)-1)."?";
$sth = $this->dbh->prepare("DELETE FROM users WHERE id IN($questionMarks)");
$sth->execute($userId);
$questionMarks = str_repeat("?,", count($contactId)-1) . "?";
$sth = $this->dbh->prepare("DELETE FROM contacts WHERE id IN($questionMarks)");
$sth->execute($contactId);
}
Обратите внимание, что $userId
и $contactId
будут массивом, а количество всегда будет равно.
КакЯ объединяю эти два запроса в один?
ОТВЕТ:
У меня сработал следующий запрос.
DELETE users,contacts FROM users INNER JOIN contacts WHERE users.id IN (2) AND contacts.id IN (2);