PHP数据库没有更新,没有错误

时间:2014-04-12 20:16:44

标签: php sql

我有一个条目页面,每个条目后面都有一个编辑按钮,单击它会带您进入该条目的编辑页面,该表单将该条目的现有数据作为默认值。我更改了值并单击更新,它重定向它应该的位置,没有错误,但也没有更改数据条目值。

我的表格:

<form method="post" action="edit.php" enctype="multipart/form-data">
Item name:</br>
<input type="text" name="item_name" value="<?php echo $row[1]; ?>"></br></br>
<input type="hidden" name="item_id" value="<?php echo $row[0]; ?>">
Item price:</br>
<input type="text" name="item_price" value="<?php echo $row[3]; ?>" ></br></br>
Item image:</br>
<input type="file" name="item_image"value="<?php echo $row[4]; ?>" ></br></br>
Item description:</br>
<textarea type="text" class="txtinput" cols="55" rows="20" name="item_description"><?php   echo $row[2]; ?>"</textarea></br></br>
<input type="submit" name="submit" value="Uppdate entry">
</form>

我的PHP:

<?php
include("includes/connect.php");

if( isset($_GET['edit']))
{
$id= $_GET['edit'];
$res= mysql_query("SELECT * FROM shop_items WHERE item_id=$id");
$row= mysql_fetch_array($res);
}

if( isset($_POST['submit']))
{
    $item_name          = $_POST['item_name'];
    $id                 = $_POST['item_id'];
    $item_price         = $_POST['item_price'];
    $item_image         = $_FILES['item_image'];
    $image_tmp          = $_FILES['item_image'] ['tmp_name'];
    $item_description   = $_POST['item_description'];

    if ($item_name=='' or $item_price=='' or $item_image=='' or $item_description==''){


         echo "<script>alert('One or more of your fields are blank, please ensure you have entered content in ALL fields.')</script>";

}
else {
    move_uploaded_file($image_tmp,"images/$item_image");

    $sql = "UPDATE shop_item SET item_name='$item_name', item_price='$item_price,' item_image='$item_description', item_name='$item_description' WHERE item_id='$id'";
    echo "<meta http-equiv='refresh' content='0;url=admin_shop.php'>";
}
}
?>

2 个答案:

答案 0 :(得分:2)

您实际上并没有运行SQL查询来更新数据库!您已将SQL查询存储在变量$ sql中,但您实际上并未调用mysql_query($ sql);

} else {
    move_uploaded_file($image_tmp,"images/$item_image");

    $sql = "UPDATE shop_item SET item_name='$item_name', item_price='$item_price,' item_image='$item_description', item_name='$item_description' WHERE item_id='$id'";


    // Add this line
    mysql_query($sql);

    echo "<meta http-equiv='refresh' content='0;url=admin_shop.php'>";
}

但是,不推荐使用MySQL功能。您应该查看PDO:http://uk3.php.net/pdo或mysqli:http://uk3.php.net/mysqli

答案 1 :(得分:1)

改变这个 -

 $sql = "UPDATE shop_item SET 
           item_name='".mysql_real_escape_string($item_name)."', 
           item_price='".mysql_real_escape_string($item_price)."',
           item_image='".mysql_real_escape_string($item_description)."', 
           item_name='".mysql_real_escape_string($item_description)."' 
         WHERE item_id='$id'";

 $exe = mysql_query($sql) or die(mysql_error());

注意:避免使用mysql_ *函数,因为它们已被弃用,而是使用mysql_ *或PDO。