因此,我使用以下命令从表中导出了一部分数据:
<?php
$con = mysqli_connect('localhost','root','','database');
$sql = "SELECT * INTO OUTFILE 'data.sql' FROM table WHERE PID<50";
mysqli_query($con, $sql);
mysqli_close($con);
?>它成功地导出,我在我的目录中得到了一个'data.sql‘文件,内容正是我所选择的( PID从1到49之间的数据)。但是,每当我尝试使用phpmyadmin将其导入到一个新表中时,它就会显示错误,该表具有相同的名称、相同的列和不同的数据库。
1064 -您的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册,以获得正确的语法。
完全错误消息:
SQL查询:
奥斯汀·本尼迪克特·特里桑托002 2015-07-01 1970-01 \N 20000 4
3 Faylisha Syema 001 120000 2015-07-01 \N \N 0 2
4 Tiara Aurellia Prasetyo 003 230000 2015-07-01 1970-01 \N 0 2
5达雷尔·马西米兰·德甘塔拉004 2015-07-01 1970-01 \N 0 0 2
6 mikaela reva calista 005 2015-07-01 1970-01-01 \N 0 2
220000 2015-07-01 1970-01 \N 15000 3
8 Putu Pooja Sita Laticia 007 230000 2015-07-01 1970-01-01 \N 0 2
9米哈伊尔·卢修斯·阿卡南塔·普拉马008 2015-07-01 1970-01 \N 0 2
MySQL说:文档
1064 -您的SQL语法有一个错误;请检查与您的MySQL服务器版本对应的手册,以获得在“奥斯汀·本尼迪克特”002 240000 2015-07-01 1970-01 \N 20000 4附近使用的正确语法。
第1行3 Faylish‘
到底是怎么回事?或者我做错了什么?我是否也应该使用php将其导入?
我们非常欢迎所有的答案。提前谢谢你。
发布于 2016-01-23 08:52:42
导入的内容不是SQL格式的。
此外,我从来没有在PHP和phpMyAdmin中运行过它。
我只是以这种方式回答这个问题,因为它是我首选的备份和还原数据库的方法。
注意:,您必须对此方法具有shell访问权限。
备份数据库。使用以下方法:
$ mysqldump -u UserName -p PassWord your_database > /directory/backup_file.sql也可以使用mysql cli输出查询:
$ mysql -e "select * from yourTable" -u userName -p passWord YourDataBase > /directory/backup_file.sql若要将导入,请将文件导入到新数据库:
$ mysql -u userName -p passWord newDatabase < /directory/backup_file.sql通过导入,您不必指定表,因为它将存储在sql文件中。
这可能不是您所期望的,但这是使用PHP进行此操作的有效选择。事实上,它是首选的方法,因为它是快速,容易,可靠和有效的。除了需要的SQL查询之外,没有任何代码。较少的代码=较少的破译机会。
https://stackoverflow.com/questions/34961359
复制相似问题