【问题标题】:Query error in phpphp中的查询错误
【发布时间】:2011-03-06 08:46:19
【问题描述】:

它说我的语法有错误,我似乎找不到错误。

$query_admin = 'SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE ' . $login_user_name . ' AND `password` LIKE ' . $login_password . ';
    $query_user = 'SELECT * FROM `user_accounts` WHERE `name` LIKE ' . $login_user_name . ' AND `password` LIKE ' . $login_password . ';

【问题讨论】:

  • 语法高亮应该能告诉你问题所在。它在最后一行的末尾
  • 每行末尾都有不匹配的单引号。此外,您没有正确使用 LIKE 语句。如果您正确使用LIKE,它将允许用户使用部分密码以管理员身份登录。此外,您的代码似乎容易受到 sql 注入攻击。

标签: php mysql sql phpmyadmin


【解决方案1】:

试试这个,我想你忘了把 ' 放在查询字符串的末尾:

$query_admin = "SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE '$login_user_name' AND `password` LIKE ' $login_password'";
$query_user = "SELECT * FROM `user_accounts` WHERE `name` LIKE '$login_user_name ' AND `password` LIKE '$login_password' ";

或者这个:

$query_admin = "SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE {$login_user_name} AND `password` LIKE {$login_password}";
$query_user = "SELECT * FROM `user_accounts` WHERE `name` LIKE {$login_user_name} AND `password` LIKE {$login_password}";

【讨论】:

  • mysql_query() 函数返回错误检查您的查询语法
  • 您可以在执行查询语法之前打印出来进行检查
【解决方案2】:

phpMyAdmin 与此有什么关系?

您不应该以. ' 结束您的行。这就是给你语法错误的原因。

只要删除它们就可以了。

【讨论】:

    【解决方案3】:

    我没有测试它。似乎是你最后有一个 ' to many。

    'SELECT * FROM `user_accounts` WHERE `id` =1 AND `name` LIKE ' . $login_user_name . ' AND       `password` LIKE ' . $login_password ;
    

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 2016-10-21
      相关资源
      最近更新 更多