簡體   English   中英

我找不到我的 sql 語法有什么問題

[英]I can't find out what's wrong with my sql syntax

Mysql 語法錯誤

幫助。 我不知道為什么我不斷收到錯誤 java.sql:SQLSyntaxException; 您的 SQL 語法有錯誤,請查看與您的 MySQL 服務器版本相對應的手冊,以獲取正確的語法以使用接近 'by) 值('19'、'Bob'、'Marquez'.'Secretary'.... ..) 在第 1 行這是我的 sql 查詢代碼。

String value = lbl_emp.getText();

try{

    String sql= "insert into thepayroll 
                    (emp_id, first_name, last_name, job_title, basic_salary, 
                    rate, overtime, overtime_hrs, "+ 
                    "a_vale, bonus, a_other, a_reason, total_allowance, sss, 
                    pagibig, philhealth, d_vale, absence, d_other, " + 
                "d_reason, total_deduction, total_salary, by) 
            values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'"+value+"')";
    
    pst = conn.prepareStatement(sql); 
    
    pst.setString(1,txt_empid.getText());
        pst.setString(2,txt_firstname.getText());
        pst.setString(3,txt_lastname.getText());
        pst.setString(4,txt_job.getText());
        pst.setString(5,txt_salary.getText());
        pst.setString(6,txt_drate.getText());
        pst.setString(7,lbl_overtime.getText());
        pst.setString(8,txt_overtime.getText());
        pst.setString(9,lbl_avale.getText());
        pst.setString(10,txt_bonus.getText());
        pst.setString(11,txt_aother.getText());
        pst.setString(12,txt_areason.getText());
        pst.setString(13,lbl_atotal.getText());
        pst.setString(14,txt_sss.getText());
        pst.setString(15,txt_pagibig.getText());
        pst.setString(16,txt_philhealth.getText());
        pst.setString(17,txt_dvale.getText());
        pst.setString(18,lbl_absence.getText());
        pst.setString(19,lbl_dother.getText());
        pst.setString(20,txt_dreason.getText());
        pst.setString(21,lbl_dtotal.getText());
        pst.setString(22,lbl_stotal.getText());
                    
        pst.execute();
        JOptionPane.showMessageDialog(null,"Data is saved successfully");

    } catch (Exception e){
            
        JOptionPane.showMessageDialog(null,e);
    } finally {
        try{
            rs.close();
            pst.close();
                    
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,e);
        }
    }
}

BYMySQL 中的保留關鍵字 換句話說,它在 SQL 解析器中具有重要性,因此將其用作列標識符會使 MySQL 的解析器感到困惑。

要將保留關鍵字用作列標識符,您必須用反引號將其分隔:

INSERT INTO thepayroll (..., `by`) VALUES (...)

您需要對所有保留關鍵字執行此操作。 請參閱我上面給出的鏈接。 如果該文檔頁面中的關鍵字旁邊有“(R)”,則它是保留關鍵字,必須加以分隔。

另一種方法是將您的列命名為其他名稱,這樣它們就不會與任何保留關鍵字沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM