Php create не вставляя в БД и проверяя существует ли он
Привет всем, у меня есть еще один проект, я работаю над логином php, и я вставляю запись в БД, я проверяю таблицу, чтобы увидеть, существует ли она или нет, так что не может быть 2 пользователей с одним и тем же именем пользователя, но я работаю с create the form submits, но ничего не вставляется. Также ценю предложения в коде, чтобы сделать мой php лучше.
<?php //mySQL database config require_once "config.php"; // Define all variables and initialize them as 'empty' $name = $username = $password = $password2 = ""; $nameerror = $usernameerror = $passworderror = $password2error = ""; // Process data when the form is submitted. if($_SERVER["REQUEST_METHOD"] == "POST") { //Name check if(empty(trim($_POST["name"]))) { $nameerror = "Please enter a name."; } else { $name = trim($_POST["name"]); } // Validate 'Username' if(empty(trim($_POST["username"]))) { $usernameerror = "Please enter a Username."; } else { // Prepare a SELECT statement. $sql = "SELECT userid FROM users WHERE username = :username"; if($stmt = $pdoConn->prepare($sql)) { // Bind variables to prepared statement as parameters $stmt->bindParam(":username", $param_username, PDO::PARAM_STR); // Set parameters $param_username = trim($_POST["username"]); // Attempt to execute prepared statement if($stmt->execute()) { if($stmt->rowCount() == 1) { $usernameerror = "Username is already taken."; } else { $username = trim($_POST["username"]); } } else { echo "Something went wrong with SELECT, please try again later."; } } // Close $stmt unset($stmt); } // Validate Password if(empty(trim($_POST["password"]))) { $passworderror = "Please enter a password."; } else if (strlen(trim($_POST["password"])) < 6) { $passworderror = "Password must have at least 6 characters."; } else { $password = trim($_POST["password"]); } // Validate Confirm Password. if(empty(trim($_POST["password2"]))) { $password2error = "Please confirm your password"; } else { $pass2 = trim($_POST["password2"]); if(empty($password2error) && ($password != $pass2)) { $password2error = "Passwords DID NOT match."; } } //Check for inputs on form to continue. // Error checks or input checks. if(empty($name) && empty($username) && empty($password) && empty($password2)) { // Prepare SELECT statement $sql = "INSERT INTO users (name, username, password) " . "VALUES (:name, :username, :password)"; if($stmt = $pdoConn->prepare($sql)) { // Bind variables to prepared statement as parameters $stmt->bindParam(":name", $param_name, PDO::PARAM_STR); $stmt->bindParam(":username", $param_username, PDO::PARAM_STR); $stmt->bindParam(":password", $param_pass, PDO::PARAM_STR); // Set parameters $para_name = $name; $param_username = $username; $param_pass = password_hash($password, PASSWORD_DEFAULT); // attempt to execute the prepared Statement if($stmt->execute()){ header("Location: ../index.php"); } else { echo "Something went wrong with INSERT"; } } // Close Statement unset($stmt); } // Close connection unset($pdoConn); } ?>
Что я уже пробовал:
У меня есть проект php login с crud и он работает в моем другом проекте но я пытаюсь сделать что то немного другое здесь используя подготовленный оператор и я не уверен почему я не могу получить свою запись для вставки в БД здесь
ZurdoDev
В чем заключается ваш вопрос?
TheBigBearNow
Мой проект действительно создает чтение и удаление, но когда я делаю обновление, я не получаю обновления. Он обновляет страницу и не обновляется и не переходит в заголовок()
Richard Deeming
В коде, который вы показали, нет ничего, что могло бы выполнить UPDATE
запрос.
Ваш INSERT
выглядит неправильно - вы выполняете его только в том случае, если все значения, которые вы собираетесь вставить, пусты.