Я очень надеюсь, что вы можете помочь!
Я использую следующую функцию для отправки сообщения в моем приложении PHP / MySql:
public function sendMail($sender_id, $recipient_id, $subject, $message) {
$q = "INSERT INTO MAIL_MESSAGE (subject, message, date) VALUES ('$subject', '$message', NOW() )";
$s = mysql_query($q);
if (mysql_affected_rows()==1) {
$message_id = mysql_insert_id();
$q = "INSERT INTO MAIL (user_id, sender, message_id) VALUES ('$recipient_id','$sender_id','$message_id')";
$s = mysql_query($q);
if (mysql_affected_rows()==1)
return true;
}
return false;
}
Я использую две таблицы (MAIL_MESSAGE и MAIL), поскольку один и тот же '$ sender_id' может отправлять одно и то же сообщение нескольким '$ receient_id'.
Теперь проблема в том, что если последний запрос не удался, у меня есть строка в MAIL_MESSAGE без соответствующей строки в MAIL.
Как я могу решить это?
Транзакции могут помочь, но я не знаю, как заставить это работать!
Заранее спасибо за помощь.