Я пробовал разные коды, но данные из формы не вставляются в таблицы базы данных

#php #html #css #sql #pdo

#php #HTML #css — код #sql #pdo

Вопрос:

Я пробовал различные коды, которые работали для других, даже сейчас коды не показывают каких-либо синтаксических ошибок, но информация из HTML-формы не вставляется в базу данных, но таблица создается из того же или похожего кода. Могу ли я, пожалуйста, кто-нибудь указать мне, где я ошибаюсь. Ниже приведен код, который я использую в настоящее время :

     <?php require_once("../includes/db.php"); ?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
        <title>SIGN UP || Admin Panel</title>
        <link href="css/styles.css" rel="stylesheet" />
        <link rel="icon" type="image/x-icon" href="assets/img/favicon.png" />
        <script data-search-pseudo-elements defer src="js/all.min.js"></script>
        <script src="js/feather.min.js"></script>
    </head>
    <body class="bg-primary">
        <div id="layoutAuthentication">
            <div id="layoutAuthentication_content">
                <main>
                    <?php
                        if(isset($_POST['submit'])) {
                          $First_Name = trim($_POST['first-name']);
                            $Last_Name = trim($_POST['last-name']);
                            $Mobile_No = trim($_POST['mobile-no']);
                            $Email_id = trim($_POST['email-address']);
                            $User_Name = trim($_POST['user-name']);
                            $Password = trim($_POST['password']);
                            $confirm_password = trim($_POST['confirm-password']);
                            if($Password != $confirm_password) {
                                $error = "Password doesn't match";
                            }
                            else {
                                $sql = "INSERT INTO user (User_Name, First_Name, Last_Name, Mobile_No, Email_id, Password)
                                       VALUES (:username :fname, :lname, :mobile, :email, :password)";
                                $stmt = $pdo->prepare($sql);
                                $stmt->execute([
                                    ':username' => $User_Name,
                                    ':fname' => $First_Name,
                                    ':lname' => $Last_Name,
                                    ':mobile' => $Mobile_No,
                                    ':email' => $Email_id,
                                    ':password' => $Password,
                                ]);
                            }
                        }
                    ?>

                    <div class="container">
                        <div class="row justify-content-center">
                            <div class="col-lg-7">
                                <div class="card shadow-lg border-0 rounded-lg mt-5">
                                    <div class="card-header justify-content-center"><h3 class="font-weight-light my-4">Create Account</h3></div>
                                    <div class="card-body">
                                        <form action="signup.php" method="POST">
                                            <?php
                                                if(isset($error)) {
                                                    echo "<p class='alert alert-danger'>{$error}</p>";
                                                }
                                            ?>
                                            <div class="form-row">
                                                <div class="col-md-6">
                                                    <div class="form-group">
                                                        <label class="small mb-1" for="inputFirstName">First Name</label>
                                                        <input name="first-name" class="form-control py-4" id="inputFirstName" type="text" placeholder="Enter first name" required="true" />
                                                    </div>
                                                </div>
                                                <div class="col-md-6">
                                                    <div class="form-group">
                                                        <label class="small mb-1" for="inputLastName">Last Name</label>
                                                        <input name="last-name" class="form-control py-4" id="inputLastName" type="text" placeholder="Enter Last Name" required="true" />
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="form-group"><label class="small mb-1" for="inputUsername">Username</label>
                                                <input name="user-name" class="form-control py-4" id="inputUsername" type="text" placeholder="Enter Username" required="true" />
                                            </div>
                                            <div class="form-group"><label class="small mb-1" for="inputMobileNo">Mobile No.</label>
                                                <input name="mobile-no" class="form-control py-4" id="inputMobileNo" type="text" placeholder="Enter Mobile No" required="true" />
                                            </div>
                                            <div class="form-group"><label class="small mb-1" for="inputEmailAddress">Email</label>
                                                <input name="email-address" class="form-control py-4" id="inputEmailAddress" type="email" aria-describedby="emailHelp" placeholder="Enter email address" required="true" />
                                            </div>
                                            <div class="form-row">
                                                <div class="col-md-6">
                                                    <div class="form-group"><label class="small mb-1" for="inputPassword">Password</label>
                                                        <input name="password" class="form-control py-4" id="inputPassword" type="password" placeholder="Enter password" required="true" />
                                                    </div>
                                                </div>
                                                <div class="col-md-6">
                                                    <div class="form-group"><label class="small mb-1" for="inputConfirmPassword">Confirm Password</label>
                                                        <input name="confirm-password" class="form-control py-4" id="inputConfirmPassword" type="password" placeholder="Confirm password" required="true" />
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="form-group mt-4 mb-0">
                                                <button name="submit" class="btn btn-primary btn-block" type="submit">Create Account</button>
                                            </div>
                                        </form>
                                    </div>
                                    <div class="card-footer text-center">
                                        <div class="small">
                                            <a href="signin.php">Have an account? Go to signin</a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </main>
            </div>
        </div>

        <!--Script JS-->
        <script src="js/jquery-3.4.1.min.js"></script>
        <script src="js/bootstrap.bundle.min.js"></script>
        <script src="js/scripts.js"></script>
        </body>
        </html>
 

Комментарии:

1. Где вы определяете переменную $pdo? Это кажется неопределенным

2. Я включил это в db.php файл и его код: ` <?php $dsn = «mysql:host=localhost;dbname=bnxchange»; попробуйте{ $pdo = новый PDO($dsn, ‘root’, «); } catch(PDOException $e) { echo $e->GetMessage(); } ?>`

3. Дважды проверьте совпадение имен столбцов в $sql и db, у меня было имя столбца с ошибкой, и ошибка не была выдана. Если они кажутся нормальными, скопируйте этот запрос в Mysql Workbench, добавьте некоторые фиктивные данные в качестве значений и запустите его, чтобы увидеть, выполняется ли он нормально или с ошибками

4. Я сделал имена столбцов без ошибок, но когда я попытался запустить запрос в sql, он выдал ошибку: ВСТАВИТЬ В контакт (имя пользователя, адрес электронной почты, комментарии) ЗНАЧЕНИЯ (JohnDoe, jd@gmail.com , готово) Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашемуВерсия сервера MariaDB для правильного синтаксиса для использования рядом ‘@gmail.com , готово)’ в строке 2 0.000 сек.

5. Заключайте значения в кавычки (‘JohnDoe’, ‘jd@gmail.com ‘, ‘готово’) и посмотрим, поможет ли это

Ответ №1:

Попробуйте:

     <?php require_once("../includes/db.php"); ?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
        <title>SIGN UP || Admin Panel</title>
        <link href="css/styles.css" rel="stylesheet" />
        <link rel="icon" type="image/x-icon" href="assets/img/favicon.png" />
        <script data-search-pseudo-elements defer src="js/all.min.js"></script>
        <script src="js/feather.min.js"></script>
    </head>
    <body class="bg-primary">
        <div id="layoutAuthentication">
            <div id="layoutAuthentication_content">
                <main>
                    <?php
                        if(isset($_POST['submit'])) {
                          $First_Name = trim($_POST['first-name']);
                            $Last_Name = trim($_POST['last-name']);
                            $Mobile_No = trim($_POST['mobile-no']);
                            $Email_id = trim($_POST['email-address']);
                            $User_Name = trim($_POST['user-name']);
                            $Password = trim($_POST['password']);
                            $confirm_password = trim($_POST['confirm-password']);
                            if($Password != $confirm_password) {
                                $error = "Password doesn't match";
                            }
                            else {
                                $sql = "INSERT INTO user (`User_Name`, `First_Name`, `Last_Name`, `Mobile_No`, `Email_id`, `Password`)
                                       VALUES (':username',':fname', ':lname', ':mobile', ':email', ':password')";
                                $stmt = $pdo->prepare($sql);
                                $stmt->execute([
                                    ':username' => $User_Name,
                                    ':fname' => $First_Name,
                                    ':lname' => $Last_Name,
                                    ':mobile' => $Mobile_No,
                                    ':email' => $Email_id,
                                    ':password' => $Password,
                                ]);
                            }
                        }

 

В ответ на @kmoser я добавил '' данные, которые должны быть добавлены.

Комментарии:

1. Что вы изменили? Пожалуйста, опишите, что вы сделали по-другому, чтобы читатели могли извлечь выгоду.