Update Query не обновляет записи в Mysql, но всегда возвращает true

0

У меня есть запрос на обновление, который всегда возвращает true, но не обновляет записи в базе данных. Я также распечатал выражение sql и, когда я пытаюсь запустить его в phpmyadmin, он выполняется успешно. Даже когда нет ошибок при печати mysql_error(). это код: -

 if (isset($_POST['submit']))
{

    $old_number = stripslashes($_REQUEST['old_number']); // removes backslashes
    //$old_number = mysqli_real_escape_string($con,$old_number); //escapes special characters in a string
    $new_number = stripslashes($_REQUEST['new_number']);
    //$new_number = mysqli_real_escape_string($con,$new_number);


//Checking is user existing in the database or not
    $query= "SELECT * FROM 'users' WHERE username='$username' and contact='$old_number'"; 
    $result = mysqli_query($con,$query) or die(mysql_error());

    $rows = mysqli_num_rows($result); 

     if($rows==1)
           {

            echo $num_update = "UPDATE users SET contact=$new_number WHERE username='$username'";

            $result_num = mysqli_query($con,$query) or die(mysql_error()); 


            $rows_num = mysqli_num_rows($result_num); 
            if($rows_num==TRUE)
                {?>
                    <div class='success'>
                    <h3>Your mobile number is updated.</h3>
                    <br/>Click here to <a href='login.php'>Login</a></div>
                    <?php //header("Location: login.php"); // Redirect user to index.php
                }else{
                    echo "<div class='error'><h3>No Records found with entered contact info</h3><br/>Click here to <a href='login.php'>Login</a></div>";
                    }

             }
             else{
                    echo "<div class='error'><h3>No Records found with entered contact info</h3><br/>Click here to <a href='login.php'>Login</a></div>";
                    }
    }   

Это таблица, в которой я пытаюсь обновить контактный номер: -

 CREATE TABLE IF NOT EXISTS 'users' (
  'id' int(11) NOT NULL AUTO_INCREMENT,
  'username' varchar(50) NOT NULL,
  'email' varchar(50) NOT NULL,
  'contact' varchar(30) DEFAULT NULL,
  'creation_date' date NOT NULL,
  PRIMARY KEY ('id')
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
  • 0
    Необходимо добавить значение в кавычках при обновлении номера. "UPDATE users SET contact='$new_number' WHERE username='$username'"
  • 0
    @B.Desai:-IB.Desai: -Я тоже пробовал, но безуспешно!
Показать ещё 3 комментария
Теги:

2 ответа

2

В вашей переменной запроса возникает проблема с использованием неправильной переменной при выполнении запроса.

  $num_update = "UPDATE users SET contact=$new_number WHERE 
           username='$username'";

Изменить следующую строку

          $result_num = mysqli_query($con,$query) or die(mysql_error()); 

с

   $result_num = mysqli_query($con, $num_update) or die(mysql_error()); 
  • 0
    Это правильный ответ, я думаю. Кто за это проголосовал?
  • 0
    Да, это сработало .. Спасибо ... Я использовал неправильную переменную ..
0

+ Изменить

contact=$new_number

в

contact='$new_number'

Contact varchar

Передача параметров непосредственно так, как это может привести к SQL Injection. Используйте привязку параметров для обеспечения безопасности. Читайте о SQL-инъекции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню