我可以将包含数据的字符串与 mysql 查询连接起来吗?
Can i concatenate my String containing data with a mysql Query?
我将此代码部分设为:
String t = (tname2.getText());
String h = (value2.getText());
PreparedStatement ps ;
if(h.length()>2)
{
ps = con.prepareStatement("DELETE FROM "+t+" where empname = "+ h);
//ps.setString(2,h);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "Record deleted !", "Confirmation", JOptionPane.INFORMATION_MESSAGE);
}
现在,ps = con.prepareStatement("DELETE FROM "+t+" where empname = "+ h);
行无法正常工作。它以相反的方式使用“?”。就像"Delete * from "+ t +" where empname =?";
然后设置 empname 的值。我想知道,如果有一种方法可以使用我的 empname 与查询的串联来做事?有人可以提供一些提示吗? `
您缺少正确打开和关闭双引号:
试试这个:
ps = con.prepareStatement("DELETE FROM " + t + " where empname = '" + h + "'");
将 PreparedStatement 与参数化查询一起使用并设置值。
这种使用也将防止 SQL 注入。
因为将值连接到您的查询中容易受到 SQL 注入。
例如。
ps = con.prepareStatement("DELETE FROM "+t+" where empname = ?");
psmt.setString(1, h);
我将此代码部分设为:
String t = (tname2.getText());
String h = (value2.getText());
PreparedStatement ps ;
if(h.length()>2)
{
ps = con.prepareStatement("DELETE FROM "+t+" where empname = "+ h);
//ps.setString(2,h);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "Record deleted !", "Confirmation", JOptionPane.INFORMATION_MESSAGE);
}
现在,ps = con.prepareStatement("DELETE FROM "+t+" where empname = "+ h);
行无法正常工作。它以相反的方式使用“?”。就像"Delete * from "+ t +" where empname =?";
然后设置 empname 的值。我想知道,如果有一种方法可以使用我的 empname 与查询的串联来做事?有人可以提供一些提示吗? `
您缺少正确打开和关闭双引号:
试试这个:
ps = con.prepareStatement("DELETE FROM " + t + " where empname = '" + h + "'");
将 PreparedStatement 与参数化查询一起使用并设置值。
这种使用也将防止 SQL 注入。
因为将值连接到您的查询中容易受到 SQL 注入。
例如。
ps = con.prepareStatement("DELETE FROM "+t+" where empname = ?");
psmt.setString(1, h);