2016-01-23 88 views
0

所以我使用命令導出數據的一部分,從表中:MySql的部分導出的數據,我不能導入回

<?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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

完整的錯誤信息:

SQL查詢:

2奧斯汀篤Trisanto 002 240000 2015年7月1日1970-01-01 \ n 20000 4

3 Faylisha Syema 001 120000 2015年7月1日\ n \ N 0 2

4頭飾Aurellia Prasetyo 003 230000 2015年7月1日1970-01-01 \ N 0 2

5達雷爾馬西米蘭Dirgantara公司004 210000 2015年7月1日1970-01-01 \ N 0 2

6米凱拉REVA卡莉斯塔弗005 210000 2015年7月1日1970-01-01 \ N 0 2

7 Gisella Joycelin田Sibarani 006 220000 2015年7月1日1970-01-01 \ n 15000 3

8普圖Pooja Sita Laticia 007 230000 2015-07-01 1970-01-01 \ N 0 2

9 Mikhael Lucius Arkananta Pra MA 008 230000 2015年7月1日1970-01-01 \ N 0 2

MySQL表示:文件

1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法在線路附近使用「2奧斯汀篤Trisanto 002 240000 2015年7月1日1970-01-01 \ n 20000 4

3 Faylish」手動1

究竟會發生什麼問題?或者我做錯了什麼?我應該使用php導入它嗎?

所有的答案都非常受歡迎。先謝謝你。

+1

你可以發佈一些sql嗎? – RamRaider

+0

你能顯示你的導出命令嗎?因爲在其上面的代碼中只有select。您必須使用轉儲將其轉儲到SQL文件。 –

+0

您的錯誤消息告訴您_exactly_錯誤在哪裏。你剛好在它變得有趣的位置截斷它。因此1.請發佈該導出文件的開頭,2.發佈_full_錯誤消息,並3.告訴_how_您嘗試導入數據。 – arkascha

回答

0

用於導入的內容不是SQL格式。

此外,我從來沒有太多的運氣通過PHPphpMyAdmin運行它。

我只以這種方式回答這個問題,因爲這是我首選的備份和恢復數據庫的方法。

注意您必須擁有此方法的shell訪問權限。

備份數據庫。使用以下命令:

$ mysqldump -u UserName -p PassWord your_database > /directory/backup_file.sql 

或者您可以使用mysqlcli輸出查詢:

$ mysql -e "select * from yourTable" -u userName -p passWord YourDataBase > /directory/backup_file.sql 

進口您的文件到新的DB:

$ mysql -u userName -p passWord newDatabase < /directory/backup_file.sql 

隨着進口,您不必指定表格,因爲該表格將存儲在sql文件中。

可能不是你所希望的,但這是使用PHP來做到這一點的有效替代。事實上,它是快速,簡單,可靠和有效的首選方法。除了需要的SQL查詢之外,沒有代碼。較少的代碼=較少的破壞機會。

+0

感謝您的回答,現在正在備份整個數據庫的權利?如何僅備份數據庫內表中的某些行? – Charas

+0

我在我的答案中有第二種方法:-)'$ mysql -e「select * from yourTable」' – Zak

+0

我嘗試使用powershell和cmd,兩者不斷收到相同的錯誤:ERROR 1049(42000):unknown database,do you有什麼想法爲什麼我的數據庫沒有被讀取? – Charas