2011-03-06 64 views
0

它说我的语法有错误,我似乎无法找到错误。查询错误在php

$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 . '; 
+0

的语法高亮应该表现出你的问题。它位于最后一行的末尾 – 2011-03-06 08:49:15

+0

在每行末尾有不匹配的单引号。另外,你没有正确使用'LIKE'语句。如果您正确使用'LIKE',则允许用户使用部分密码以管理员身份登录。另外,看起来你的代码很容易受到SQL注入攻击。 – leepowers 2011-03-06 08:50:58

回答

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}"; 
+0

非常感谢! – NSanjay 2011-03-06 09:05:53

+0

mysql_query()函数返回false检查查询语法 – 2011-03-06 09:08:22

+0

您可以在执行查询语句之前打印查询语法 – 2011-03-06 09:11:16

1

phpMyAdmin与此有什么关系?

你不应该结束与. '你的线路。这就是给你语法错误的原因。

只要删除它们,你应该没问题。

0

我没有测试它。似乎是你在最后有一个'很多'。

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