2012-12-05 23 views
0

我有一個Java程序成功連接到godaddy服務器上託管的mysql數據庫。但是,如果我嘗試使用INSERT或UPDATE向其寫入數據,則無法執行查詢。我使用通過godaddy設置的'admin'帳戶,我意識到這不是root帳戶。我檢查並確認連接不是隻讀的,並且在查詢運行時已經註銷了phpmyadmin。我不確定還有什麼我可以嘗試或者是否有人遇到過這個問題。Java程序將從數據庫中讀取,但不會寫入它

也許設置到連接我沒有設置?或者也許這是不可能的,因爲db是在godaddy的服務器上託管的?

任何幫助是偉大的!

謝謝。

下面是一些相關的代碼:
連接到數據庫:

Connection con; 
public DBconnection(String url, String user, String pass) 
{ 
     try { 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      con = DriverManager.getConnection (url,user,pass); 


      if(!con.isClosed()) 
       System.out.println("connecton open"); 
     } 
     catch (InstantiationException e) {e.printStackTrace();} 
     catch (IllegalAccessException e) {e.printStackTrace();} 
     catch (ClassNotFoundException e) {e.printStackTrace();} 
     catch (SQLException e) {e.printStackTrace();} 
} 

發送查詢:

​​

插入查詢(工作在phpMyAdmin):

conn.executeQuery("INSERT INTO tickets VALUES(55555,'12/01/2012','me','reports','test','','','0','Nope')"); 
+0

您是否收到任何錯誤? –

+0

有一些錯誤代碼?控制檯說什麼? –

+2

對於INSERT語句,您必須使用'executeUpdate',而不是'executeQuery' –

回答

3

使用, statement.executeUpdate()執行INSERT查詢。

FROM的Statement.executeUpdate(String sql) API:

執行在此PreparedStatement對象,其 必須是一個SQL數據操縱語言(DML)語句的SQL語句,如 INSERT,UPDATE或DELETE;或者一個不返回任何內容的SQL語句,如DDL語句, 。

executeUpdate("INSERT INTO tickets VALUES(55555,'12/01/2012','me','reports','test','','','0','Nope')"); 

而且我強烈建議您使用PreparedStatemnt,而不是簡單的語句來執行使用JDBCSQL

+0

感謝您的幫助!它現在起作用了,我正在研究/轉換準備好的陳述。再次感謝。 – ck1221

0

用於實例化連接對象的用戶名和密碼只具有從數據庫中讀取的權限,不能寫入。 您需要更改連接到數據庫的憑證,或者您需要向相關用戶提供許可

相關問題