2016-05-31 122 views
-1

我想插入数据到我的数据库,但它不工作,我没有得到任何错误。我猜想我的PHP代码有些问题,但是我尝试了一些网络上的解决方案,这些解决方案适用于其他人,但不适合我。插入数据库与PHP

我的html代码:

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

,在这里我的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

安置自己的数据库架构。而且应该有错误。检查服务器日志 –

+0

'var_dump()'你的$ _POST变量,以确保它们被正确发送 – WillardSolutions

+1

第5个字符是特殊字符还是什么? –

回答

1

$mysqli变量需要来之前:

$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 

另外,我建议你使用参数化的查询,它更安全。

+0

实际上现在它的工作原理,我想这个问题是因为德语字母“ß”在“straße”中,而我的$ mysqli没有出现在谢谢那个felippe和@Dr Manish Joshi – Korken55

1

既然你都将数据插入尝试用准备好的发言

$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

谢谢那个! – Korken55

+0

希望它帮助@ Korken55 –

+0

它实际上以前,但我想这个解决方案是一个更好,也许更安全的方式?去做吧。 @Peter Darmis – Korken55