Первая база данных SQL не работает

Я работаю над своим личным проектом, и я принимаю имя и адрес электронной почты, поэтому я создал базу данных под названием:

emailtemp с столбцами «name» и «email»

Страница PHPMyAdmin

Форма HTML:

<form method="post" action="connect.php" class="contact100-form validate-form">
    <div class="wrap-input100 m-b-10 validate-input" data-validate = "Name is required">
            <input class="s2-txt1 placeholder0 input100" type="text" name="username" placeholder="Your Name">
            <span class="focus-input100"></span>
    </div>

    <div class="wrap-input100 m-b-20 validate-input" data-validate = "Email is required: ex@abc.xyz">
        <input class="s2-txt1 placeholder0 input100" type="text" name="emailAddress" placeholder="Email Address">
        <span class="focus-input100"></span>
    </div>

    <div class="w-full">
        <button class="flex-c-m s2-txt2 size4 bg1 bor1 hov1 trans-04">
            Subscribe
        </button>
    </div>
</form>

PHP-файл:

<?php
$connect = mysqli_connect("mysql.*****.net","*****","****>","emailtemp");
//Sending form data to sql db.
mysqli_query($connect,"INSERT INTO posts (customerName, customerEmail)
VALUES ('$_POST[username]', '$_POST[emailAddress]')";

?>

Исходя из всего, что я прочитал, и посмотрел на него, он должен работать, но после того, как я нажму «подписаться», он подтягивает connect.php и говорит: «В настоящее время не удается обработать этот запрос. HTTP ERROR 500»

Есть ли способ, чтобы этот процесс был в фоновом режиме и остался на той же странице и просто сказал, что он успешный?

php,mysql,mysqli,

0

Ответов: 3



0
  1. Похоже, что вам не хватает )в конце вашего mysqli_query()звонка.

  2. Если ваша БД действительно такая:

    emailtemp с столбцами «name» и «email»

.. тогда вы должны соответствовать тем, что указаны в вашем запросе:

mysqli_query($connect,"INSERT INTO emailtemp (name, email)
VALUES ('$_POST[username]', '$_POST[emailAddress]')");
  1. Рекомендуется сначала проверять пользователя / электронную почту, если они как-то пусты, что вызовет исключение.

как это:

$username = $_POST[username];
$email = $_POST[emailAddress];
if ($username && $email) {
  // stuff here
} else {
  // other stuff here
}

0

Вы забыли закрыть функцию mysqli_query с помощью a) и вы забыли скобки вокруг имени пользователя и emailAdress

mysqli_query($connect,"INSERT INTO posts (customerName, customerEmail)
VALUES ('$_POST[username]', '$_POST[emailAddress]')");

Также этот код делает вас уязвимыми для SQL-инъекций

Пользователи могут вводить другие команды на сервер SQL, и они выполняются с правами администратора.

Вы можете использовать PDO, безопасную реализацию SQL в PHP (при правильном использовании, конечно)

В вашем примере это будет:

    $dbhost = "your-host";
    $dbname = "your-db-name";
    $dbusername = "your-username";
    $dbpassword = "your-password";

    $conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);

    $statement = $conn->prepare("INSERT INTO posts (customerName, customerEmail)
VALUES (:username, :emailAddress");
    $statement->execute(array(
        "username" => $_POST['username'],
        "emailAdress" => $_POST['emailAdress']
    ));
PHP, MySQL, MySQLi,
Похожие вопросы