2017-08-29 126 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); 
} 
?>