【问题标题】:Whats wrong with this query? Using ands这个查询有什么问题?使用 ands
【发布时间】:2015-06-08 15:20:35
【问题描述】:

我没有错误,什么都没有,但由于某种原因我的页面是空白的,这要感谢:

$userBusca = mysqli_query($conn, "SELECT * FROM account.login_admin WHERE login='".$login."' AND password='".$password."' AND key='".$key_load."'") or die(mysql_error());

登录名和密码来自表单,key_load 是来自文本文件的字符串。

这有什么问题吗?

编辑:没有 key='".$key_load."' 的情况下一切正常

【问题讨论】:

  • 你真的应该使用 PHP 的built-in functions 来处理密码安全问题。
  • 我不是,密码已经散列了
  • 将查询放入 Db phpmyadmin。你会知道错误的!
  • [Err] 1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'key='".$key_load."'' 附近使用正确的语法;我该如何解决?
  • 不知道是关键字,不是每个人都有你的知识,别这么咸了

标签: php mysql


【解决方案1】:

AND key

用刻度包裹它

AND `key`

或将其重命名为其他名称,例如 the_key,但不要尝试 keys,因为这也是 MySQL 保留字。

您还将 API 与应为 mysqli_error($conn)mysql_error() 混合使用

  • 这些不同的 MySQL API/函数不会相互混合。

另外,我希望您存储的是一个安全的哈希值。

如果没有:

对于密码存储,使用CRYPT_BLOWFISH 或PHP 5.5 的password_hash() 函数。对于 PHP password_hash() compatibility pack

【讨论】:

  • 他可以给像column name AS key这样的别名吗?
  • @jQuery.PHP.Magento.com 不,他们不能。请参阅此问答stackoverflow.com/q/27309977
  • @jQuery.PHP.Magento.com 上面的附录......嗯,是的,他们可以,但他们仍然需要将保留字包装在刻度 ` 中。
猜你喜欢
  • 2011-09-29
  • 2011-10-13
  • 1970-01-01
  • 2010-09-07
  • 2010-10-04
  • 2011-01-15
  • 2021-05-08
相关资源
最近更新 更多