2013-03-14 6 views
0

간단한 PHP 로그인 기능이 있습니다. 이 함수 내에서 테이블에서 사용자 이름을 선택하는 MySQL 쿼리를 만들고 반환되는 행 수를 계산하여 사용자가 존재하는지 확인하려고합니다. 테이블에 사용자 이름이 있다는 사실을 알았을 때 null을 반환하는 쿼리에 문제가 있습니다.

PHP MySQL 쿼리가 null을 반환합니다.

여기 내 코드입니다.

function login($user_name, $password) { 
    $db1 = new DB_CONNECT();   
    $db1->connect(); 

    $query = "SELECT user_name FROM users WHERE user_name = '$user_name'"; 
    $result = $db1->makeAQuery($query); 

    if (mysql_num_rows($result) == 1) { 
     //check the password 
    } 
    else { 
     //no user exist 
    } 
} 


나는오고있는 사용자 이름과 암호를 확인 있다는 것을 알고 난 함수로 전송하기 전에 나는 어떤 공백 트림. 데이터베이스 연결은 PHP 코드의 나머지 부분에서 작동하기 때문에 작동하는 것으로 알고 있습니다. 내가 얻고있는 유일한 오류는 mysql_num_rows도가

데이터베이스 클래스 "매개 변수 1, 널 (null) 주어진 자원이 될 것으로 기대"고 언급 하나입니다

class DB_CONNECT { 
    function connect() { 
     // import database connection variables 
     require_once __DIR__ . '/db_config.php'; 
     $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error()); 

     // Selecing database 
     mysql_select_db(DB_DATABASE, $con) or die(mysql_error()); 
    } 
    function makeAQuery($query) { 
     $result = mysql_query($query) or die(mysql_error());   
    } 
    function close() { 
     // closing db connection 
    mysql_close(); 
    } 
} 
+2

에'DB_CONNECT'의 CL의 코드가 무엇인지를 나귀? – Kris

+2

및 p.s. http://xkcd.com/327/ – Kris

+0

@Kris Nice one : – Bigood

답변

0

이 작동합니다 : 또한

"SELECT user_name FROM users WHERE user_name = '".$user_name."'";

변경이 :

function makeAQuery($query) { 
    $result = mysql_query($query) or die(mysql_error());   
} 

function makeAQuery($query) { 
    $result = mysql_query($query) or die(mysql_error());  
    return $result; 
} 
+0

Return 문이 그랬습니다. 그 후, 나는 간단한 진술을 잊었다. 도움이 된 – Bency76

+0

기쁜;) – rinchik

-1

어쩌면에 = 사이의 공백을 제거하려고 쿼리.

"SELECT user_name FROM users WHERE user_name='$user_name'" 

쿼리가 실행되지 않아 스크립트가 null을 반환 할 수 있습니다.

+0

나는'user_name = many_space_here '$ user_name ''을 만들 수 있습니다. –

+0

아, 미안하지만, MySQL이 공백을 걱정하지 않습니다. –

+0

공백이 있거나 없으면 무엇이든 – Bency76

관련 문제