2016-05-31 11 views
-1

私のデータベースにデータを挿入しようとしていますが、動作しません。エラーは表示されません。私は何か私のPHPコードで間違っていると思うが、私はいくつかの他の人のために働いたが、私のために働いていないいくつかのWeb上のソリューションを試してみました。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

$ _POST変数が正しく送信されていることを確認するために 'var_dump()'を実行してください – 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 didntはそのfelippeと@Dr Manish Joshiに感謝の前に来た – Korken55

1

あなたはデータを挿入しているので、あなたのDBスキーマを投稿

$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

その1つのおかげで! – Korken55

+0

それが役に立ったと願っています。@ Korken55 –

+0

これは実際には前に働いていましたが、私はこのソリューションがより安全で多分もっと安全な方法だと思いますか?それをするために。 @Peter Darmis – Korken55

関連する問題