@vame

Почему не вносятся изменения в БД?

Есть код, который обрабатывает нажатие по кнопке в дальнейшем если условие выполняется должен выполнится запрос в БД в поле owner должны внестись изменения, но ничего не меняется, пытался выводить ошибки, ничего не показало, проверял условие оно тоже работает, все стопится на sql запросе, хотя он тоже вроде правильный

if(isset($_POST['ref_button']) )
{
    $send_ref = mysqli_real_escape_string($con, $_POST["send_ref"]);
    $check_ref = "SELECT * FROM usertable WHERE referral='$send_ref'";
    $run_sql_ref = mysqli_query($con,$check_ref);
    if(mysqli_num_rows($run_sql_ref) > 0){
        $insert_code_ref = "UPDATE usertable SET owner = $send_ref WHERE email = '$email'";
    }
}
?>

Поле в которое должно вносится изменение
63f35c9d988ab144437595.png
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@alexalexes
1. Нужно использовать подготовленные запросы, а не делать по старинке через mysqli_real_escape_string.
2. Если вы текстом написали запрос update, он еще не начнет выполнятся, где-то нужно запустить execute.
if(isset($_POST['ref_button']) )
{
    $send_ref = $_POST["send_ref"];    
    $stmt = msqli_prepare($con, "SELECT * FROM usertable WHERE referral= ?");
    mysqli_stmt_bind_param($stmt, 's', $send_ref);  // s - тип данных строка, i - число, если не тот тип данных - нужно исправить
    $result = mysqli_stmt_execute($stmt);
    if(mysqli_num_rows($result) > 0)
    {
        $stmt = msqli_prepare($con, "UPDATE usertable SET owner = ? WHERE email = ?");
        mysqli_stmt_bind_param($stmt, 'ss', $send_ref, $email); // s - тип данных строка, i - число, если не тот тип данных - нужно исправить
        $result = mysqli_stmt_execute($stmt);
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы