Search code examples
phphtmlmysqlimampsql-insert

Insert into database with php


I'm trying to insert data into my database, but it doesnt work, i get no errors. I guess something is wrong with my php code, but i tried some solutions on web that worked for some other people, but not for me.

my html code:

<!Doctype HTML>

<html>

<title>Neues Projekt</title>
<link rel="stylesheet" type="text/css" href="style.css">
<meta charset="UTF-8">

    <head>
        <h1>Neues Projekt anlegen</h1>
    </head>

    <body>
<form action="php_skript.php" method="post">    
  <p>Name des Projekts:</p>
  <input type="text" name="name">
  <p>Ort des Projekts:</p>
  <input type="text" name="ort">
  <p>Straße des Projekts:</p>  
  <input type="text" name="strasse">
  <p>Projektleiter:</p> 
  <input type="text" name="projektleiter">
  <br>
  <input type="submit" value="Submit">
  </form>
  Bilder hinzufügen:
    <form method="post" enctype="multipart/form-data">
              <input type="file" name="image_data" multiple>
          </form>


      </form>

    </body>


</html>

and here my php code:

<?php
$user = 'root';
$password = 'root';
$db = 'projekte_db';
$host = 'localhost';
$port = 3306;

$name=mysqli_real_escape_string($mysqli, $_POST['name']);
$ort=mysqli_real_escape_string($mysqli, $_POST['ort']);
$strasse=mysqli_real_escape_string($mysqli, $_POST['strasse']);
$projektleiter=mysqli_real_escape_string($mysqli, $_POST['projektleiter']);

$mysqli=new mysqli($host, $user, $password, $db);


if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$mysqli->query("INSERT INTO Projekt (name,ort,straße,projektleiter) VALUES ('$name','$ort','$strasse','$projektleiter')");

$mysqli->close();
?>

Solution

  • Your $mysqli variable need to comes before:

    $mysqli=new mysqli($host, $user, $password, $db); //put here
    
    $name=mysqli_real_escape_string($mysqli, $_POST['name']);
    $ort=mysqli_real_escape_string($mysqli, $_POST['ort']);
    $strasse=mysqli_real_escape_string($mysqli, $_POST['strasse']);
    $projektleiter=mysqli_real_escape_string($mysqli, $_POST['projektleiter']);
    
    //$mysqli=new mysqli($host, $user, $password, $db); remove here
    

    Also, I suggest you to use parameterized queries, it's more safe.