INSERT после импорта phpMyAdmin экспорт не работает - PullRequest
0 голосов
/ 07 февраля 2019

Я использую PDO :: exec () для импорта таблиц из экспорта phpMyAdmin и сразу после вставки данных в одну из этих таблиц.Каждый раз, когда я пытаюсь импортировать файл, кажется, что он усекает таблицы, которые он создал после вставки, так как оператор select сразу после вставок показывает строки правильно.Однако таблица пуста, если я посмотрю на нее вручную после запуска скрипта, даже если я выйду из скрипта сразу после вставок.Обратите внимание, что я не получаю никаких ошибок при запуске сценария или запуске файла импорта SQL вручную.

Я не смог найти ничего об этой проблеме.Я надеюсь, что у кого-то есть ответ.Заранее спасибо.

PHP

$db->exec(file_get_contents('test.sql'));

$db->query("
    INSERT INTO test 
    SET
        test1 = 5,
        test2 = 'testing123'
");

phpMyAdmin export

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `test`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `test`
--

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `test1` int(11) NOT NULL,
  `test2` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Indexen voor geëxporteerde tabellen
--

--
-- Indexen voor tabel `test`
--
ALTER TABLE `test`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT voor geëxporteerde tabellen
--

--
-- AUTO_INCREMENT voor een tabel `test`
--
ALTER TABLE `test`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

1 Ответ

0 голосов
/ 07 февраля 2019

Таким образом, проблема, кажется, была вызвана строкой SET AUTOCOMMIT = 0; в файле экспорта.У меня недостаточно знаний о MySQL, чтобы понять, что именно он делает, но, похоже, все работает без него.

...