2017-09-01 108 views
-1

所以我想用php post-request更新我的MySql表。問題是當我用我的表沒有更新。當我使用get-request的時候。我需要使用post,因爲我需要更新圖像,所以get-request不夠大。有人能幫助我嗎?php更新mysql表使用post請求

<?php 

    $persoonID = $_POST['persoonID']; 
    $foto = $_POST['foto']; 
    $telefoonnummer = $_POST['telefoonnummer']; 
    $email = $_POST['email']; 
    $adresID = $_POST['adresID']; 
    /* 
    $persoonID = $_GET['persoonID']; 
    $foto = $_GET['foto']; 
    $telefoonnummer = $_GET['telefoonnummer']; 
    $email = $_GET['email']; 
    $adresID = $_GET['adresID']; 
    */ 
    require_once('dbConnect.php'); 
    $sql = " UPDATE Personen SET `Telefoonnummer`='$telefoonnummer',`Email`='$email',`AdresID`='$adresID', 'foto' = '$foto WHERE PersoonID = $persoonID"; 
    if(mysqli_query($con,$sql)){ 
     echo 'Succes'; 
    }else{ 
     echo 'Er is iets fout gelopen tijdens het wijzigen, probeer opnieuw!!'; 
    } 
    mysqli_close($con); 
+1

請使用準備的查詢,而不是替換變量。 – Barmar

+0

'var_dump($ _ POST)'顯示什麼? – Barmar

+0

您在''foto'後缺少一個報價。 ''foto'附近還有引號,而不是反引號。 – Barmar

回答

0

在表單上添加method =「post」。由於您要上傳圖片,因此不要忘記在表單上添加enctype =「multipart/form-data」。

E.g

<form action="somewhere.php" method="post" enctype="multipart/form-data"> 
...your form fields here 
</form> 
0

您已經引用在SQL錯誤。

$sql = "UPDATE Personen SET `Telefoonnummer`='$telefoonnummer',`Email`='$email',`AdresID`='$adresID', `foto` = '$foto' WHERE PersoonID = $persoonID"; 

但是最好使用預先準備的查詢來防止SQL注入。

$stmt = mysqli_prepare($con, "UPDATE Personen SET `Telefoonnummer` = ?, `Email` = ?, `AdresID` = ?, `foto` = ? WHERE PersoonID = ?"; 
mysqli_stmt_bind_param($stmt, "ssssi", $telefoonnummer, $email, $adresID, $foto, $persoonID); 
if (mysqli_stmt_execute($stmt)) { 
    echo 'Succes'; 
}else{ 
    echo 'Er is iets fout gelopen tijdens het wijzigen, probeer opnieuw!!'; 
    echo mysqli_stmt_error($stmt); 
}