Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从sql文件加载时,mysql\u查询无法部分工作_Php_Mysql_Phpmyadmin - Fatal编程技术网

Php 从sql文件加载时,mysql\u查询无法部分工作

Php 从sql文件加载时,mysql\u查询无法部分工作,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我已将数据库的内容转储到sql文件中,格式如下 insert into `a` values (17,11,5), (18,12,7), (19,12,10), (21,14,45), (22,15,46), (24,16,46), (25,16,49), (26,17,21), (27,17,30), (28,17,45), (29,17,54), (30,18,32), (31,18,35), (32,19,23), (33,19,27), (34,19,54), (35,20,53), (

我已将数据库的内容转储到sql文件中,格式如下

insert into `a` values
(17,11,5),
(18,12,7),
(19,12,10),
(21,14,45),
(22,15,46),
(24,16,46),
(25,16,49),
(26,17,21),
(27,17,30),
(28,17,45),
(29,17,54),
(30,18,32),
(31,18,35),
(32,19,23),
(33,19,27),
(34,19,54),
(35,20,53),
(36,21,32),
(37,21,35),
(38,21,45),
(39,22,23),
(40,22,30),
(41,22,45),
(57,24,19),
(58,25,46),
(59,26,39),
(60,27,49),
(61,27,56),
(62,28,34);

insert into `b` values (14,'2009-01-06',''),
(15,'2009-02-01',''),
(16,'2009-03-01',''),
(17,'2009-03-25',''),
(18,'2009-04-05',''),
(19,'2009-04-17',''),
(20,'2009-04-18',''),
(21,'2009-04-19',''),
(22,'2009-04-23',''),
(24,'2009-07-05',''),
(25,'2009-08-02',''),
(26,'2009-08-07',''),
(27,'2009-09-06',''),
(28,'2009-09-14','');

etc..
我有4个这样的表,没有外键约束。然后我尝试将数据上传到db mysql中。我读取文件的内容,将每个表的插入传递到数组中,然后对每个元素执行mysql\U查询:

$sqlArray = explode(';',$sqlFile); 

 for($i=0;$i<sizeof($sqlArray);$i++){
   mysql_query($sqlArray[$i]) or die ('Error: '.mysql_error());;
 }
我验证了$sqlArray具有正确的contains,并且查询是正确的,并且可以从phpmyadmin运行

这个问题似乎不考虑第一个表,即使B是第一个表,它也会出现,它似乎总是在中间或将近70个字符后面删去查询。
任何帮助都将不胜感激

您的第二条语句有输入错误,应输入:

insert int `b` values (14,'2009-01-06',''),
或者,如果不是这个问题,请尝试使用单独的insert语句来获得更清晰的错误消息:

insert into `a` values (17,11,5);
insert into `a` values (118,12,7);
...
我在MySQL的一些旧版本上体验到,他们不喜欢扩展插入。您还可以尝试使用列的真实名称显式指定列名。如果这些表中有3列以上(例如,自动递增列),这将非常有用

insert into `a` (`[column1name]`, `[column2name]`, `[column3name]`) values (17,11,5);

你有没有试过把'放进17,11,5。i、 就我记忆所及,e'17'、'11'、'5'需要将它们的值括在单引号中。为什么不在命令行中这样做呢,例如mysql yourdbinsert into `a` (`[column1name]`, `[column2name]`, `[column3name]`) values (17,11,5);