2015-10-20 231 views
0

编程新手,我试图创建一个使用PHP/MySQL登录表单,我遇到了一些问题。我不明白为什么我的SQL代码不能执行,我使用本地主机。你们能帮我吗? 感谢 这里是我写的MySQL无法执行

<?php 

$host = "localhost"; 
$user = "root"; 
$pass = ""; 
$db = "login"; 

mysql_connect($host, $user, $pass); 
mysql_select_db($db); 


if (isset($_POST['username'])){ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    $sql = "SELECT * FROM users WHERE username'".$username."' AND password='".$password."' LIMIT 1"; 
    $res = mysql_query($sql); 
    if (mysql_num_rows($res) == 1){ 
     echo "You have successfully logged in."; 
     exit(); 
    }else{ 
     echo "Invalid password information."; 
     exit(); 
    } 
} 
?> 
+4

你'WHERE'从句中缺少'='。你也应该切换到mysqli或PDO。 –

+1

你在'where用户名'=>'上丢失了一个等号,其中username =' – Matadeleo

+0

愚蠢的问题;花更多的时间在将问题提交给其他人之前查看你的写作内容。 – klaar

回答

2

代码我想你忘记了=

$sql = "SELECT * FROM users WHERE username='".$username."' AND password='".$password."' LIMIT 1"; 
+2

谢谢你的帮助! – Mll

1

简单的拼写错误:

变化:

$sql = "SELECT * FROM users WHERE username'".$username."' AND password='".$password."' LIMIT 1"; 

要:

$sql = "SELECT * FROM users WHERE username = '".$username."' AND password='".$password."' LIMIT 1"; 

另一件事,如果你不需要它们,你不需要从数据库表中获取所有的字段。

这会减慢页面加载的速度。

您只能获取id字段。

你取的行数,这样,您的查询应该是:

SELECT id FROM users WHERE username ...

+0

谢谢你的帮助! – Mll