正确更新表

时间:2018-08-21 02:58:58

标签: php html mysqli

由于@ user3282898进行了一些更改,因此我更新了该帖子!虽然我仍然无法将更新推送到数据库。

表列$id$issue$last_mod已经存在,我只需要更新issue and last_mod column with respect to its $ id的内容`。

这是我到目前为止所拥有的:

<?php
session_start();
session_regenerate_id();
if(!isset($_SESSION['username']))      
{
    header("Location: login.php");
}
?>

<?php
$conn = mysqli_connect("localhost", "root", "", "order");

if (isset($_GET['id']) && is_numeric($_GET['id']))
{
//id value
$id = $_GET['id'];
$last_mod = $_SESSION['username'];

mysqli_query($conn, "UPDATE order.coupon SET issue='Resolved', last_mod=".$last_mod." WHERE id=".$_POST['id']) //update won't work

or die(mysqli_error());

header("Location: form.php");
}
else

{
header("Location: form.php");
}
?>

我尝试省略$last_mod来隔离更新问题,并发现此语句有效:

mysqli_query($conn, "UPDATE order.coupon SET issue='Resolved' WHERE id=$id")

但是它不能与其中的$last_mod一起使用:

mysqli_query($conn, "UPDATE order.coupon SET issue='Resolved', last_mod=".$last_mod." WHERE id=".$_POST['id'])

mysqli_query($conn, "UPDATE order.coupon SET issue='Resolved', last_mod=".$last_mod." WHERE job_id=$job_id")

总是欢迎您的建议/意见,谢谢大家!

3 个答案:

答案 0 :(得分:0)

该查询似乎没有任何意义;那么...

$sql = "UPDATE `coupon` SET `last_mod` = NOW() WHERE `coupon_id` = ?";

因为它似乎出现,就像您要插入username作为优惠券的last_mod(最后修改)时间戳一样。只要不确定为什么生成的SQL无法正常工作,只需添加die($sql);。另外,建议使用user_id(或coupon_id)代替username;因为索引的INT字段可以更快速地查询。

答案 1 :(得分:0)

这应该为您工作。

$last_mod = $_SESSION['username'];

$query = "INSERT INTO coupon(last_mod) 
VALUES ($last_mod)";

答案 2 :(得分:0)

$_SESSION['username']='$last_mod'

您正在更新表中的$ _SESSION ['username']字段,该字段不存在! $ _SESSION ['username']是用户名,要更新的列是last_mod。

您应该按照我在评论中所说的那样进行操作:

UPDATE order.coupon SET last_mod='$last_mod' WHERE id='".$_POST['id']."'");