2016-05-31 7 views
-1

Ich versuche, Daten in meine Datenbank einzufügen, aber es funktioniert nicht, ich bekomme keine Fehler. Ich denke, dass etwas mit meinem PHP-Code nicht stimmt, aber ich habe einige Lösungen im Web versucht, die für andere Leute funktionieren, aber nicht für mich.Einfügen in Datenbank mit PHP

meine 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> 

und hier Code meine php:

<?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(); 
?> 
+1

Veröffentlichen Sie Ihre DB-Schema zu verwenden. Und es sollte Fehler geben. Überprüfen Sie die Server Logs –

+0

'var_dump()' Ihre $ _POST Variablen, um sicherzustellen, dass sie korrekt gesendet werden. – WillardSolutions

+1

Straße 5. Zeichen ist Sonderzeichen oder was? –

Antwort

1

Ihre $mysqli Variable Notwendigkeit, kommt vor:

$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 

Auch ich schlage vor, Sie zu verwenden parametrisierte Abfragen, ist es sicherer.

+0

eigentlich jetzt funktioniert es, ich denke, das Problem war wegen der deutschen Buchstaben "ß" in "straße" und dass mein $ mysqli nicht kam vorher danke für das felippe und @Dr Manish Joshi – Korken55

1

Da Sie Einfügen von Daten versuchen Prepared Statements

$user = 'root'; 
$password = 'root'; 
$db = 'projekte_db'; 
$host = 'localhost'; 

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

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$name=$_POST['name']; 
$ort=$_POST['ort']; 
$strasse=$_POST['strasse']; 
$projektleiter=$_POST['projektleiter']; 

/* create a prepared statement */ 
if ($stmt = $mysqli->prepare("INSERT INTO `Projekt` (`name`,`ort`,`straße`,`projektleiter`) VALUES (?,?,?,?)")) { 

    /* bind parameters for markers */ 
    /* use s for strings, i for integer,d for double, b for blob */ 
    $stmt->bind_param("ssss", $name,$ort,$strasse,$projektleiter); 

    /* execute query */ 
    $stmt->execute(); 

    /* close statement */ 
    $stmt->close(); 
} 
$mysqli->close(); 
+0

vielen Dank für dieses! – Korken55

+0

hoffe, es half @ Korken55 –

+0

es tatsächlich funktioniert, aber ich denke, diese Lösung ist eine bessere und vielleicht sicherere Art und Weise? es zu tun. @Peter Darmis – Korken55