2017-09-01 111 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); 
}