2017-08-29 81 views
0

我的代碼下面沒有得到id來更新數據庫。 該ID位於來自其他頁面表單的頁面網址上。 沒有錯誤顯示在屏幕上,但我的數據庫不會更新。PHP代碼沒有得到id來更新數據庫

我錯過了什麼?

<?php 
    if (isset($_POST['submit'])) { 

    $id = $_POST["id"]; 
    $product_name = $_POST["product_name"]; 
    $visible = $_POST["visible"]; 

    $query = "UPDATE products SET "; 
    $query .= "product_name = '{$product_name}', "; 
    $query .= "visible = {$visible} "; 
    $query .= "WHERE id = $id "; 
    $result = mysqli_query($connection, $query); 
    } 
?> 
+3

如果 'id是頁面的網址' 你需要使用'$ _GET的'代替'$ _ POST [ 「身份證」]'[ 「身份證」。還回應您的查詢,看看它是什麼樣子,作爲檢查。最後,請了解[SQL注入的安全風險](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 –

+0

我試過使用GET,它沒有工作。此外,當我回應查詢它不給我任何結果。我正在學習注射,後面我會在代碼中做。感謝您的建議! – Willian

+0

然後嘗試第二步; echo $ query;'看看它。更好的是,讓我們看看它的樣子。另外請記住,您的條件:'isset($ _ POST ['submit'])'可能不符合。 –

回答

0

感謝您的幫助球員。我發現了這個問題! 正如你所說的紀子,我試圖回聲循環內的任何地方,並且問題一直在繼續。 現在我已經改變了一開始的代碼,它解決了這個問題。

這裏的解決方案:

<?php 

if($_GET['id']){ 
$id = $_GET["id"]; 
$product_name = $_POST["product_name"]; 
$visible = $_POST["visible"]; 

    $query = "UPDATE products SET "; 
    $query .= "product_name = '{$product_name}', "; 
    $query .= "visible = {$visible} "; 
    $query .= "WHERE id = $id "; 
    $result = mysqli_query($connection, $query); 
} 
?>