Привет, сообщество stackoverflow!
У меня есть код, который я просто не могу понять, я пытаюсь обновить имена пользователей в своей базе данных пользователей, но всегда есть ошибка в строке 29-31. У кого-нибудь есть решение?
Спасибо, что прочитали <3 </p>
<?php
if (isset($_POST['changename-submit'])) {
require 'db.php';
$userId = $_SESSION['userId'];
$username = $_POST['username'];
if (empty($username)) {
header("Location: ../settings.php?error=emptyfields");
exit();
} else if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) {
header("Location: ../settings.php?error=invaliduid");
exit();
} else {
$sql = "SELECT user_uid FROM users WHERE user_uid=? OR user_email=?";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../settings.php?error=sqlerror");
exit();
} else {
mysqli_stmt_bind_param($stmt, "s", $username);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultCheck = mysqli_stmt_num_rows($stmt);
if ($resultCheck > 0) {
header("Location: ../settings.php?error=usertaken");
exit();
} else {
$sql = "UPDATE users SET (user_uid, userId) VALUES (?, ?)";
// $sql = "UPDATE users SET user_uid='$username' WHERE user_id='$userId'"
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../settings.php?error=sqlerror2");
exit();
} else {
mysqli_stmt_bind_param($stmt, "ss", $username, $userId);
mysqli_stmt_execute($stmt);
session_start();
session_unset();
session_destroy();
session_start();
$_SESSION['userId'] = $row['user_id'];
$_SESSION['userUid'] = $row['user_uid'];
header("Location: ../settings.php?settings=success");
exit();
}
}
}
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
} else {
header("Location: ../settings.php");
exit();
}