java - 为什么这个 SQL 语句会导致错误?

标签 java sql phpmyadmin

我对此感到非常生气,所以我向人群寻求帮助;)

我想做的:我们有一个 Unity 学习游戏,它将实现一个登录窗口。然后对输入的凭据进行哈希处理(密码)并将其发送到服务器,然后服务器应根据数据库进行检查。

我有下表:

xy.users_confirms 具有以下列:

已创建 ID 用户名电子邮件密码哈希码

为什么我的代码

String sql = "SELECT " + "xy.users_confirms.password as pwhash, "
                        +"FROM xy.users_confirms "  +"WHERE xy.users_confirms.username = " +"\"userNameToGetHashFor\"";

导致我遇到 SQLException“参数索引超出范围(1 > 参数数量,即 0)”

谢谢,非常感谢任何意见!

最佳答案

试试这个:

 String parameter = "'"+ strNameToGetHashFor + "'";
 String sql = "SELECT " + "xy.users_confirms.password as pwhash, "
             +"FROM xy.users_confirms "  
             +"WHERE xy.users_confirms.username ="+ parameter;

您正在使用 varchar 值作为参数,因此需要像这样引用。'username'。或者您可以使用Stored Procedure .

关于java - 为什么这个 SQL 语句会导致错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023310/

相关文章:

java - 针对特殊用户的 maxSession 配置预防

java - 递归函数抛出 java.lang.StackOverflowError

php - 向表中插入数据并立即选择该行的ID号

MySQL 使用 LIMIT 超时

php - 如何将.frm文件传输到表?

Java - 将字符串(包括 EEST)转换为日期

sql - 复杂 SQL 查询优化

Sql 查询在数据库中查找临时表

php - MySQL 查询在 phpMyAdmin 中运行正常,但在 PHP 中挂起

java - 确保 JAR 中包含文本文件