2014-02-25 161 views
2
 $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。我无法从逻辑上看出问题所在。任何人都可以发现它?我一直在上墙。mysqli更新不起作用

谢谢。

回答

4

你需要用你的约会对象在报价:

$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"; 
1

变化

$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";