2015-10-20 2 views
0

Я новичок в программировании, и я пытаюсь создать форму входа с помощью php/mysql, и у меня возникли некоторые проблемы. Я не могу понять, почему мой код sql не может быть выполнен, я использую localhost. Не могли бы вы, ребята, помочь мне? Благодаря Вот код, который я написал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' =>' 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"; 

To:

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

Другое дело, что вам не нужно извлекать все поля из таблицы базы данных, если они вам не нужны.

Это замедляет скорость загрузки страницы.

Вы можете выбрать только поле id.

Вы выборка количества строк, поэтому, ваш запрос должен быть:

SELECT id FROM users WHERE username ...

+0

Спасибо за помощь! – Mll