Mysql
 sql >> база данни >  >> RDS >> Mysql

MYSQL, PHP Вмъкване в множество таблици в базата данни

Тъй като тези две вмъквания се изпълняват независимо, друга програма, която се изпълнява едновременно, може да види базата данни в състояние, в което първото вмъкване е извършено, но второто не.

Дали това е проблем или не зависи от логиката на приложението. Във вашия случай е трудно да се каже без допълнителна информация. Вероятно не. Пример за това е е финансова транзакция, включваща две сметки проблем:не искате сборът от всички салда по сметката да е грешен по всяко време.

Ако смятате, че имате нужда от това, можете да направите операцията атомарна с цената на производителността:друга програма или ще види базата данни преди първото вмъкване, или след второто вмъкване. Работи така:

$result = FALSE;
if (mysql_query('BEGIN')) {
    if (mysql_query($query1) &&
        mysql_query($query2))
        $result = mysql_query('COMMIT'); // both queries looked OK, save
    else
        mysql_query('ROLLBACK'); // problems with queries, no changes
}

Машината за съхранение трябва да поддържа транзакции, т.е. трябва да е InnoDB . В противен случай това няма да работи безшумно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фатална грешка:Извикване на член на функция query() на null

  2. MySQL предоставя всички привилегии на база данни с изключение на една таблица

  3. Може ли 'false' да съответства на някакъв низ в mysql?

  4. PHP/MySQL:Най-добри практики за парични операции/съхранение?

  5. Как да импортирате CSV файл в MySQL таблица