导入phpMyAdmin导出后无法插入

时间:2019-02-07 10:35:16

标签: php sql pdo mariadb

我正在使用PDO :: exec()从phpMyAdmin导出中导入表,并且在将数据插入其中一个表之后立即使用。每次我尝试导入文件时,似乎都会截断插入后创建的表,因为插入后的select语句正确显示了行。但是,即使我在插入后立即退出脚本,如果在运行脚本后手动查看该表,该表也将为空。请注意,手动运行脚本或SQL导入文件不会导致任何错误。

我找不到关于此问题的任何信息。我希望有人能回答。预先感谢。

PHP

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

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

phpMyAdmin导出

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 :(得分:0)

所以问题似乎是由导出文件中的行SET AUTOCOMMIT = 0;引起的。我对MySQL的了解不足,无法确切知道它的作用,但是没有它,一切似乎仍然可以正常工作。