在我的网络服务中,当用户注册时,他们会获得一个存储在表中的 token (在本例中,它是一个没有任何分隔符的 GUID)。
为了测试它是否正常工作,我转到 PHPMyAdmin 并在 SQL 查询选项卡中输入
SELECT * FROM MyTable WHERE Token=my_guid AND Username=user AND Password=pass
这会正确返回行
我有一个 Web 服务,它接受 3 个参数并执行相同的 SQL 查询,但是没有返回任何行。如果我删除 token 参数,该行将正常返回。表中显示Token字段设置为42个字符。
在我的 PHP 文件中,失败的查询如下所示
$query = "SELECT * from Login WHERE Username = '$username' AND Password = '$password' AND Token = '$token';";
$result = mysql_query($query,$link) or die('Errant query: '.$query);
是否正在进行某种终端字符剥离,因为我不明白为什么查询应该在删除 token 的情况下工作,但当它存在并在数据库中时不起作用。
服务器正在使用 PHP 5.6.35
最佳答案
应该是
$query = "SELECT * from Login WHERE Username = '{$username}' AND Password = '{$password}' AND Token = '{$token}';";
关于php - 将值从 PHP 传递到 MySQL 失败,但在 PHPMyAdmin 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49940202/