2011-03-06 62 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 ;