小编Ama*_*man的帖子

使用预准备语句 + sql 查询的动态列名,变量包含 's

我的查询

attributes.replace(" ' ", "");
//also used SET "+attributes+" 
String sql;
sql = "UPDATE diseaseinfo"
        + " SET ?=?"
        + "WHERE companyname = 'mycom' && diseaseName =?";

PreparedStatement preparedStmt = connects.prepareStatement(sql);
preparedStmt.setString(1, attributes);
preparedStmt.setString(2, attrData);
preparedStmt.setString(3, medname);
System.out.println(preparedStmt);
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误,因为查询在字符串中设置了列名,所以它在原因上变成这样

 UPDATE diseaseinfo SET 'causes'='abc' WHERE companyname = 'mycom'  and diseaseName ='fever'
Run Code Online (Sandbox Code Playgroud)

通过这个问题我知道我不能通过准备好的语句添加动态列:https : //stackoverflow.com/a/3136049/7794329

现在,真正的问题出现了:假设我是否会使用一个简单的更新查询,比如这个问题:jdbc dymanic sql query with variable containsg 's

它说你不能在你的简单 sql 查询中输入带有 's 的值,因为它会再次使查询语法错误,例如:

SELECT * FROM diseaseinfo WHERE diseaseName = 'Adult Still's disease' AND name …
Run Code Online (Sandbox Code Playgroud)

java mysql sql jdbc

4
推荐指数
1
解决办法
9015
查看次数

在javascript中获取一个变量中空格后的所有字符串

我在做什么

例如我有一个名字

 var nameofuser = 'John Constantine vayo';
    var values = nameofuser.split(" ");
    var f_name = values[0];
    var l_name = nameofuser.substr(nameofuser.indexOf(' ') + 1);
    console.log(f_name);
    console.log(l_name);
Run Code Online (Sandbox Code Playgroud)

当用户输入他的姓氏和其他头衔等时,它工作正常,这一切都在 l_name 中,但是当用户仅输入名字(例如“John”)时,l_name 也会填充“john”:(,

我希望如果用户输入姓氏等,则只应填充 l_name 。

如果用户仅输入名字,则仅应填充带有名字的 f_name

javascript

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

javascript ×1

jdbc ×1

mysql ×1

sql ×1