@mega-sinyak

Почему происходит двойная вставка в БД на точке входа?

Установил композером RedBeanPHP, пишу простенький тест:
R::setup('mysql:host=localhost;dbname=test', 'mysql', 'mysql');

$book = R::dispense('book');
$book->title = 'Тест';
R::store($book); // при точке входа делает два insert-А

Если этот код выполнить в index.php в корне, то всё нормально, но если я заюзаю точку входа и перемещаю index.php по классике в public, то этот код производит двойную вставку.

В чём проблема при использовании точки входа?

p.s. применение что-то вроде синглтона
if (!R::testConnection()) {
    R::setup('mysql:host=localhost;dbname=test', 'mysql', 'mysql');
}

не решает проблему: соединение одно, вставок - две

как проверял? вот так
$a = 0;
if (!R::testConnection()) {
    R::setup('mysql:host=localhost;dbname=test', 'mysql', 'mysql');
    $a++;
}
if (!R::testConnection()) {
    R::setup('mysql:host=localhost;dbname=test', 'mysql', 'mysql');
    $a++;
}
if (!R::testConnection()) {
    R::setup('mysql:host=localhost;dbname=test', 'mysql', 'mysql');
    $a++;
}

$book = R::dispense('book');
$book->title = 'Тест';
R::store($book);

echo $a; // 1
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
DevMan
@DevMan
обычно такое происходит из–за кривого роутинга/реврайта – автоматический запрос favicon.ico дергает скрипт.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы