2012-05-07 27 views
0
String x=jTextField1.getText(); 

比較錯誤連接到數據庫的查詢之後是:我得到的有關日期的Java和MySQL connectivity..its在Java和MySQL

String query="INSERT INTO student(A) VALUES('"+a+"') where date=' " +x+ " ';"; 

stmt.executeUpdate(query); 

* a是一個字符串,有一個字母P分配給它。

錯誤我得到是「....檢查你的MySQL語法....對應日期=「」 + X」‘;’

我想比較輸入的日期textfield到mysql'date'列中的日期,如果它是正確的,'a'值(它是P)應該寫入列A中同一行的輸入日期...

請幫助...

謝謝...

+0

發佈錯誤代碼。 – kosa

+0

我得到的錯誤是:**您的sql語法有錯誤。請檢查您的手冊,對應於您的MySql服務器版本的正確語法,以便在'where at ='2012,02.20'在第1行* * – seagull

+0

使用java.sql.'PreparedStatement'! – Gevorg

回答

1

我s在單引號之後/之前的空格。

此外date也是一個SQL關鍵字,所以最好不要使用它作爲字段名稱。你可以寫

`date` 

加成

對不起,我意識到我犯了錯誤(date不能因爲我們插入新記錄的字段查詢)。 要麼你的意思是:

String query = "INSERT INTO student(A) VALUES('P') WHERE CURRENT_DATE() = '2012-05-09'"; 

或者date是一個領域,你只是想設置另一個字段:

String query = "UPDATE student SET A = 'P' WHERE `date` = '2012-05-09'"; 

插入新記錄成同一個表

這是不允許立即做,所以必須使用te mporary表。

CREATE TEMPORARY TABLE tmp (A VARCHAR(1)); 

INSERT INTO tmp (A) 
SELECT 'P' FROM student WHERE dt = '...'; 

INSERT INTO student(A) 
SELECT A FROM tmp; 

DROP TABLE tmp; 
+0

我沒有編輯日期到dt,但它顯示相同的錯誤。 – seagull

+0

嘗試輸入有效日期:'2012-05-08'。 –

+0

試過了,請改進代碼,並張貼.. – seagull