mysqli更新不起作用

Posted

技术标签:

【中文标题】mysqli更新不起作用【英文标题】:mysqli update not working 【发布时间】:2014-02-25 20:49:32 【问题描述】:
        $sql3 = "SELECT order_id FROM orders WHERE order_code = '$order_code'";
        $result3 = $conn->query($sql3) or exit("Error code ($conn->errno): $conn->error");

        $row = mysqli_fetch_assoc($result3);
        $order_id = $row['order_id'];       

        $deliv_date = date('Y-m-d');

        $sql = "UPDATE orders SET deliv_date = $deliv_date
                        WHERE order_id = $order_id";
        $result = $conn->query($sql) or exit("Error code ($conn->errno): $conn->error");



        $sql1 = "INSERT INTO invoice VALUES (0,'$order_code','$deliv_date','','$order_id')";

        $result1 = $conn->query($sql1) or exit("Error code ($conn->errno): $conn->error");

以上是我正在使用的代码。最后一行的插入工作正常,并选择了正确的 $order_code、$deliv_date 和 $order_id。更新没有错误,但字段“deliv_date”从未设置为 $deliv_date。我只是无法从逻辑上看出问题所在。谁能发现它?我一直在爬墙。

谢谢。

【问题讨论】:

【参考方案1】:

您需要将日期用引号括起来:

$sql = "UPDATE orders SET deliv_date = $deliv_date
                    WHERE order_id = $order_id";

应该是

$sql = "UPDATE orders SET deliv_date = '$deliv_date' <-- HERE
                    WHERE order_id = $order_id";

【讨论】:

【参考方案2】:

改变

$sql = "UPDATE orders SET deliv_date = $deliv_date
                        WHERE order_id = $order_id";

$sql = "UPDATE orders SET deliv_date = '$deliv_date'
                        WHERE order_id = $order_id";

【讨论】:

以上是关于mysqli更新不起作用的主要内容,如果未能解决你的问题,请参考以下文章

PHP SQL 查询不起作用

为啥这个准备语句在 MYSQLI 中不起作用?

为啥我的 IP 检查方法不起作用? PHP/Mysqli

缺少扩展 mysqli,phpmyadmin 不起作用

缺少扩展 mysqli,phpmyadmin 不起作用

从 MySQL 到 mysqli 的转换不起作用