Задать вопрос
@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
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    3 месяца
    Далее
Решения вопроса 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);
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы