2013-12-24 100 views
0

我嘗試在C++中實現我自己的函數(不帶外部庫),它可以通過「系統」函數簡單地打開和退出mysql。編寫mysql命令行

我試過這段代碼:

#include <iostream> 
#include <string> 

int main() 
{ 
    const std::string command = "mysql -h localhost -u root -proot"; 
    system(command.c_str()); 
    const std::string command2 = "exit()"; 
    system(command2.c_str()); 

    system("pause"); 
    return 0; 
} 

當我嘗試,中控臺連接到MySQL控制檯,但exit命令不通過。 我認爲代碼可以連接並斷開連接到MySQL服務,但它不。

出了什麼問題?爲什麼它不起作用?

謝謝!

回答

0

您撥打system的兩個電話與彼此無關;他們是獨立的,第一個是在第二個開始之前完成的。如果你想傳遞一個字符串的第一個mysql命令,也許像這樣的工作:

const std::string command = "echo 'exit()' | mysql -h localhost -u root -proot"; 
system(command.c_str()); 

如果不工作,你可能會使用popen

+0

Thx it works !!!而對於幾個命令呢? const std :: string command =「echo exit | command3 | command2 | command1 | mysql -h localhost -u root -proot」; system(command.c_str()); 此代碼是否工作? – Alfred

+0

不,但你可以做一些類似'echo「的命令command1 \ ncommand2 \ ncommand3」| mysql ...' –