2014-01-20 3 views
1

Я только начал использовать подготовленные заявления в этом коде, но у меня возникла проблема. Я использую их, чтобы узнать, существует ли пользователь с определенным адресом электронной почты, но он не будет работать. Вот мой код:В чем проблема с этим кодом с помощью подготовленных операторов?

$mysqli = new mysqli("localhost", "root", "mypass", "mydb"); 

$uname = $mysqli->real_escape_string($_POST["uname"]); 
$email = $mysqli->real_escape_string($_POST["email"]); 
$passwd = $mysqli->real_escape_string($_POST["passwd"]); 

$stmt1 = $mysqli->prepare("SELECT * FROM users WHERE email=?"); 
$stmt1->bind_param("s", $email); 
$stmt1->execute(); 
$res1 = $stmt1->get_result(); 
$i = 0; 
while($row1 = $res1->fetch_assoc()) { 
    $i = $i + 1; 
} 
if($i != 0) { 
    die("A user with that email already exists."); 
} 

я затем, чтобы проверить, если имя пользователя уже используется, используя один и тот же код, только замена из ссылок на электронную почту с uname и коммутационные stmt1 к stmt2. Что случилось с моим кодом здесь?

+4

Не избежать, если вы используете подготовленные заявления .... это одна из вещей, которые готовили заявления сделать для вас –

+0

Если вы используете подготовленные заявления, вы не должны использовать 'real_escape_string'. Подготовленные заявления обрабатывают эту часть для вас. –

+0

«Это не сработает» означает, что у вас нет результатов, и хотя ваш error_reporting установлен правильно, у вас нет сообщения об ошибке, верно? –

ответ

0

Это страница для входа, которую я использую для своего веб-сайта. Лучше вы вносите изменения в соответствии с вашими требованиями.

<?php 
global $con;; 
$con = mysql_connect("localhost:3306", 'rvani', "rv6861", TRUE) or die (mysql_error()); 
mysql_select_db("rvani", $con); 

/// Connection 

$pwd = trim($_POST['pwd']); 
$email = trim($_POST['email']);`enter code here` 
if($pwd == ""){ 
    echo'PasswordNull'; 
    return; 
    } 
if($email == ""){ 
    echo'EmailNull'; 
    return; 
    } 
$quy = "select * from MLogin where email_id='$email'"; 
global $con; 
try { 
    $res= mysql_fetch_assoc(mysql_query($quy, $con)); 
    } 
catch (Exception $e1) 
    { 
    echo 'Error'; 
    } 
if(md5($pwd) === $res['Password']){ 
    //echo'Successfully'; 
    echo'Welcome'; 
    return ; 
}else{ 
    echo'PasswordNotMatch'; 
    return ; 
}  
/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
?> 
+0

Я считаю, что вопрос задает вопрос о проблеме в данной базе кода. – Mutant

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