2013-09-28 4 views
0

Привет, я работаю над базовым скриптом входа с php. Ибо я не беспокоюсь о безопасности, я просто хочу, чтобы она работала. Но по какой-то причине он продолжает возвращать false, когда в базе данных находятся значения.PDO login продолжает показывать false

Редактировать: connection.php содержит информацию для входа в базу данных.

$config['db'] = array(
'host' => 'localhost', 
'username' => 'root', 
'password' => '', 
'dbname' => 'mywebsite' 
); 




$db = new PDO('mysql:host=' . $config['db']['host']. ';dbname=' . $config['db']['dbname'] , $config['db']['username'] , $config['db']['password']); 

конец connection.php

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

    require_once 'Connection.php'; 
    $user = $_POST['username']; 
    $pass = $_POST['password']; 


     $sth = $db->prepare('SELECT `username` , `password` from `library` where `username` = ? And `password` = ? '); 

     $sth->bindParam(1, $user); 
     $sth->bindParam(2, $pass); 
     $sth->execute(); 

     if($sth->fetchColumn() > 0) { 
      echo $user; 
     } else { 
      echo 'false'; 
     } 
} 

, что я делаю не так? Например, отправить сообщение для пользователя и 123 для пароля. Который существует в моей библиотеке и возвращает false.

+0

Вы уверены, что вы подключены? – Mihai

+0

Большинство def. Я использовал connection.php для скрипта register. – Dahnny012

ответ

2

Не используйте разделители для названия столбцов:

SELECT username, password FROM `library` WHERE username = ? AND password = ? 

также ваш if тест неправильно. PDOStatement::fetchColumn никогда не возвращает целочисленное значение, следовательно, вам нужно изменить:

if($sth->fetchColumn() > 0) { 

к:

if($sth->fetchColumn() != false) { 
+0

Что вы имеете в виду и объясняете? – Dahnny012

+0

@ Dahnny012, см. Править. – Shoe

+0

Спасибо, кажется, что ответ stackoverflow в другом вопросе был неправильным. Можете ли вы объяснить мне разделителей. Когда я просматриваю некоторые SQL-запросы некоторых людей, некоторые используют разделители во всех строках и столбцах. И некоторые не делают. – Dahnny012

Смежные вопросы