2013-10-21 45 views
0

我想用批處理文件進行一些SQL操作,但不起作用。 以下是批處理文件的內容。我不明白我在做什麼錯..使用批處理文件插入數據庫

c:\wamp\bin\mysql\mysql5.6.12\bin\mysql.exe -h localhost --user=root --password=mariette -e connect quizz -e INSERT INTO `quizz`.`jeu1` (
`index` , 
`user` , 
`password` , 
`score` 
) 
VALUES (
NULL , 'chris', 'qsdfg', '25' 
); 

pause 
+0

如果'index'是你的主鍵,它不能是'NULL'。 – christopher

+0

嘗試用雙引號括住你的sql語句 –

+0

它在phpmyadmin中起作用! (它是我從phpmyadmin的自動代碼粘貼的代碼)...但不是在我的批處理文件中... – user2216280

回答

1

你應該更好地加入您的SQL語法在一個SQL文件,並像:

c:\wamp\bin\mysql\mysql5.6.12\bin\mysql.exe -hlocalhost -uroot -pmariette DATABASE < /path/to/dump.sql 

這裏/path/to/dump.sql指示絕對路徑文件dump.sql其中應包含您的SQL命令。 DATABASE應該替換爲您正在操作的數據庫的實際名稱。

這樣做更好,因爲如果您想要更改SQL,則只需更改SQL文件,而不是命令本身。

+0

感謝它的工作! merci beaucoup – user2216280

2

不能在批量使用新的生產線一樣,這file.Try

set "query=INSERT INTO `quizz`.`jeu1` (`index` ,`user` ,`password` ,`score`) VALUES (NULL , 'chris', 'qsdfg', '25');" 
c:\wamp\bin\mysql\mysql5.6.12\bin\mysql.exe -h localhost --user=root --password=mariette -e connect quizz -e "%query%" 
pause 

或者這樣:

set query=INSERT INTO `quizz`.`jeu1` (`index` ,`user` ,`password` ,`score`)^ 
VALUES^
(NULL , 'chris', 'qsdfg', '25'); 

c:\wamp\bin\mysql\mysql5.6.12\bin\mysql.exe -h localhost --user=root --password=mariette -e connect quizz -e "%query%" 
pause 

這裏新線逃脫^爲更具可讀性code.Not知道,如果查詢是正確的。

+1

我相信'%query%'應該被引用,以便它被解釋爲單個參數。另外,你的第二個代碼必須在SET語句中轉義引號,否則'^'被視爲文字。我看不到需要中間的QUERY變量。 SQL查詢字符串可以直接在命令行上提供。 – dbenham

+0

謝謝指出。 – npocmaka