Не могу получить форму для вставки данных - PullRequest
0 голосов
/ 05 мая 2018

Я борюсь со вставкой формы в базу данных mysql. После заполнения формы я получаю следующее сообщение об ошибке

bad query: INSERT INTO gjenstand(idselger,bilde,beskrivelse,idkategori,minstepris,utlopsdato) VALUES (1,23.jpeg,TVbord,,950,2018-06-23)

Информация, которая не вставляется, имеет следующий код:

$conn=mysqli_connect ("localhost","root","root", "bruktbutikk");
    $sql1="select beskrivelse from kategori";
$datasett1 = $conn->query($sql1);


if(isset($_POST["submit"]))
{
    $sql =sprintf("INSERT INTO gjenstand(idselger,bilde,beskrivelse,idkategori,minstepris,utlopsdato) VALUES (%s,%s,%s,%s,%s,%s)",

                  $tilkobling->real_escape_string($_POST["lstnavn"]),
                  $tilkobling->real_escape_string($_POST["txtbilde"]),
                  $tilkobling->real_escape_string($_POST["txtbeskrivelse"]),
                  $tilkobling->real_escape_string($_POST["lstkategori"]),
                  $tilkobling->real_escape_string($_POST["txtminste_pris"]),
                  $tilkobling->real_escape_string($_POST["txtutlopsdato"])

         );

         $tilkobling->query($sql,$sql1) or die ("bad query:$sql");

и вот код для формы с отсутствующим значением:

 <form method="post">
        <div>
        <label for="lstkategori">Kategori:</label>
        <select name="lstkategori" id="lstkategori">
         <?php while($rad=mysqli_fetch_array($datasett1)) { ?>
             <option value="<?php echo $rad["idkategori"]; ?>"> <?php echo $rad["beskrivelse"]; ?>
             </option>}
            <br><br><br>
         <?php } ?> <br><br>
         </select>

Заранее большое спасибо за то, что уделили мне время и помогли мне <33 </p>

1 Ответ

0 голосов
/ 05 мая 2018

Вам нужно заключить в кавычки значения, содержащие строки.

$sql =sprintf("INSERT INTO gjenstand(idselger,bilde,beskrivelse,idkategori,minstepris,utlopsdato) VALUES (%s,'%s','%s','%s',%s,'%s')",

Но лучше вместо этого использовать параметризованный запрос:

$sql = "INSERT INTO gjenstand(idselger,bilde,beskrivelse,idkategori,minstepris,utlopsdato) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("isssis", $_POST["lstnavn"], $_POST["txtbilde"], $_POST["txtbeskrivelse"], $_POST["lstkategori"], $_POST["txtminste_pris"], $_POST["txtutlopsdato"]);
$stmt->execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...