2015-01-05 2 views
-2

Я очень новичок в PHP.Непростой возврат при использовании mysql_query() в регистрации

Когда я регистрирую нового пользователя, я получал unproper 'return' (-1 вместо 1), когда я использую mysql_query. Неправильная строка с возвратом «mysql_query».

Что я делаю неправильно?

public function register ($username, $password, $activationcode) { 
    $username = $this->parse($username); 
    $password = $this->parse($password); 

    $query_search = "SELECT * from tbl_user WHERE username = '".$username."' "; 
    $query_exec = mysql_query($query_search) or die(mysql_error()); 
    $no_of_rows = mysql_num_rows($query_exec); 

if ($no_of_rows == 0) 
{ 
     $newUser="INSERT INTO tbl_user(username, password,activationcode) VALUES ('".$username."', '".$password. "','".$activationcode."')"; 
     if(mysql_query($newUser)) 
     { 
     return 1; 
     } 
}else { 
    return -1; 
    } 
} 
+0

ли вы получаете какие-либо сообщения об ошибках? – Rizier123

+0

Остерегайтесь инъекций SQL и используйте MySQLi. –

+2

Пожалуйста, [не используйте 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). –

ответ

0

Позвольте мне сказать, что я бы не закодировать это таким образом, но вот то, что я хотел бы сделать, чтобы исправить свой код, сохраняя при этом структуру:

include($_SERVER['DOCUMENT_ROOT']."/database.php"); // your database connection values that are into a $database variable that we will use now. For example, mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD); 

public function register ($username, $password, $activationcode){ 
    $username = $this->parse($username); 
    $password = $this->parse($password); 

    mysqli_select_db(DB_NAME); // the name of the database you will use. 

    $sql = mysqli_query($database, "SELECT * from tbl_user WHERE username = '$username'") or die(mysqli_error()); 

    if(mysqli_num_rows($sql) == 0){ 
     $newUser = "INSERT INTO tbl_user (username, password, activationcode) VALUES ('$username', '$password', '$activationcode')"; 
     if(mysqli_query($database, $newUser)){ 
      return 1; 
     } else { 
      return -1; // you might get a problem in here too. 
     } 
    } else { 
     return -1; 
    } 
} 
Смежные вопросы