Ошибка при заполнении базы данных mysql данными из php / html

Я создал это для одного из своих проектов. У нас есть интернет-магазин, где пользователи могут вводить свои учетные данные и заказывать продукты. Текущее решение помещает все данные в файл .csv, и мне было поручено создать базу данных mysql в качестве нового решения.

Я добавил простую HTML-вставку, чтобы пользователь мог ввести свое имя, но если я попытаюсь запустить сценарий, я получаю синтаксическую ошибку для строки 19. Я новичок в программировании и поэтому не уверен, в чем заключается ошибка.

<!DOCTYPE html>
<html>
<body>


<?php

$servername = "localhost";
$username = "localhost";
$password = "";
$dbname = "test"

    // create a variable
$Vorname=$_POST['Vorname'];
$Nachname=$_POST['Nachname'];

    //Execute the query

mysqli_query($connect "INSERT INTO tbl_bestellungen(Vorname,Nachname)
				VALUES('$Vorname','$Nachname')");
    <?php include 'database.php';>


if (mysqli_affected_rows($connect) > 0){
    echo "<p>Bestellung erfasst</p>";
   } else {
    echo "Bestellvorgang fehlgeschlagen<br />";
    echo mysqli_error ($connect);

<h2>Text Input</h2>

<form>
  Vorname:<br>
  <input type = "text" name = "Vorname">
  <br>
  Nachname:<br>
  <input type = "text" name = "Nachname">
  
  <input type = "submit" name = "button1"  value = "Senden">
</form>

</body>
</html>

Заранее спасибо.

<? php include 'database.php';> находится внутри уже открытого блока php. Вы также добавляете прямой html в файл php, не закрывая тег php. Этот код также никогда не будет работать, поскольку запрос будет выполняться с пустыми операторами. Вам нужно обернуть все проверкой $ _POST.

Neil Masters 06.08.2018 10:15
Опасность: Вы уязвим для Атаки с использованием SQL-инъекций, от которого вам нужно самому защищать.
Quentin 06.08.2018 10:19

Вы забыли запятую после $connect. Голосование не по теме из-за опечатки.

Quentin 06.08.2018 10:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
25
1

Ответы 1

Что ж, вы должны сделать так:

$servername = "localhost";
$username = "localhost";
$password = "";
$dbname = "test"

$dbConn = mysqli_connect($servername, $username, $password, $dbname);
if (!$dbConn){
   echo "No Db connected"; 
}

//above connection code should be in a separate file and include in all files or header



$Vorname=$_POST['Vorname'];
$Nachname=$_POST['Nachname'];

$query = "INSERT INTO tbl_bestellungen (Vorname,Nachname)
            VALUES('$Vorname','$Nachname')";

or you can set query like

$query = "INSERT INTO tbl_bestellungen (Vorname,Nachname)
            VALUES('".$Vorname."','".$Nachname."')";

if ($dbConn->query($query)){
   echo "Record inserted !";
}else{
   echo "Record cannot be inserted !";
}

Это похоже на игру в поисках отличия, а не на ответ. Что вы изменили? Почему это должно решить проблему?

Quentin 06.08.2018 10:27

2 вещи, у него есть синтаксическая ошибка, на которую ответят (если он продолжит путь), во-вторых, кавычки должны быть вокруг, когда мы используем переменные в запросе (хотя переменные отлично работают без этого, если мы используем двойные кавычки)

Naveed Ramzan 06.08.2018 10:30

"у него синтаксическая ошибка, на которую дан ответ" - Как? Еще раз: ответы не должны быть игрой на выявление разницы.

Quentin 06.08.2018 10:33

«хотя переменные прекрасно работают и без этого, если мы используем двойные кавычки» - что и делает код в вопросе, так что это просто отвлекающий маневр, затрудняющий чтение кода.

Quentin 06.08.2018 10:33

Другие вопросы по теме