Проверьте результат ( mysql_query, PHP Manual ):
Для SELECT, SHOW, DESCRIBE, EXPLAIN и других операторов, возвращающих набор результатов, mysql_query () возвращает ресурс в случае успеха или FALSE в случае ошибки.
Для операторов SQL другого типа: INSERT, UPDATE, DELETE, DROP и т. Д. Mysql_query () возвращает TRUE в случае успеха или FALSE в случае ошибки.
Пример (в стиле PHP4): РЕДАКТИРОВАТЬ : улучшенный пример для комментария Йоханнеса
mysql_connect("localhost", "username", "password") or die( mysql_error() );
mysql_select_db("test") or die(mysql_error());
$query = "INSERT INTO ..."; //Query here
mysql_query("BEGIN"); // transaction begins
$result = mysql_query($query);
if(!$result)
{
mysql_query("ROLLBACK"); //Transaction rolls back
echo "Rolled Back.";
exit;
}
else
{
$committed = mysql_query("COMMIT"); //Commit Transaction
if(!$committed)
{
//Commit Failed, take appropriate action
}
else
{
echo "Successful Insert.";
}
}
Или, для использования PDO, СМ. Использование попытки захвата PDO в функциях