gpt4 book ai didi

mysql 语句 WHERE 未知

转载 作者:行者123 更新时间:2023-11-29 22:35:25 31 4
gpt4 key购买 nike

我有这个sql语句:

selectAllUsersByCriteria = 连接.prepareStatement( “从用户那里选择*?=?” );

下面的方法运行该语句:

public ArrayList<User> getUsersByCriteria(String 1criteria, String 2criteria)
{
ArrayList<User> results = null;
ResultSet resultSet = null;
try
{
selectAllUsersByCriteria.setString( 1, 1criteria);
selectAllUsersByCriteria.setString( 2, 2criteria);

// executeQuery returns ResultSet containing matching entries
resultSet = selectAllUsersByCriteria.executeQuery();

results = new ArrayList< User >();

while ( resultSet.next() )
{
results.add( new User( resultSet.getString( "userName" ),
resultSet.getString( "Password" ),
resultSet.getBoolean( "AdminRights" ),
resultSet.getDouble( "Balance" )
) );
} // end while
} // end try
catch ( SQLException sqlException )
{
sqlException.printStackTrace();
} // end catch
finally
{
try
{
resultSet.close();
} // end try
catch ( SQLException sqlException )
{
sqlException.printStackTrace();
close();
} // end catch
} // end finally

return results;
}

这不起作用。我猜这是第一个?这就是问题所在。不是可以设置 WHERE 吗?作为一个 ?。是否可以通过其他方式解决。

这是我想显示的一个表格,但它应该只显示遵循它的用户满足两个条件。

最佳答案

您需要将列名称直接注入(inject)到字符串中。这将使您面临 SQL 注入(inject)攻击,因此我建议查询(并且可能缓存)表的架构信息(具体在 INFORMATION_SCHEMA.COLUMNS 中找到)。

这样,您可以通过查看用户提交的列名称是否在可用列列表中来确保用户提交的列名称与表中的列名称之一相匹配,然后再将其注入(inject)到脚本中。

关于mysql 语句 WHERE 未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565660/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com