【问题标题】:Inserting specific query to the table向表中插入特定查询
【发布时间】:2016-09-19 21:23:22
【问题描述】:

我正在尝试将特定值插入 MySQL 表,但每当我这样做时,都会发生错误并且无法插入。当我追踪它时,我注意到只有在给出所有实体或将声明所有实体时才能插入查询。如何使用 PHP 代码解决此问题?

if (isset($_POST['submit'])) {
    $rec_qty=$_POST['rec_qty'];
    $id=$_POST['item_id'];

    for($i=0; $i < count($_POST['rec_qty']);$i++) {
        $sql = mysqli_query($conn,"INSERT INTO itemlist (quantity) values('".$_POST['rec_qty'][$i]."') ") or die ("Error description: " . mysqli_error($conn)); 

        $update = "$conn,UPDATE itemlist set quantity='$quantity' where item_id='$id'";

        if($sql) {
            header("Location: received_item.php?attempt=success");
        } else {        
            header("Location: received_item.php?attempt=empty");
        }
    }

/**Error description: Field 'item_name' doesn't have a default value**/

【问题讨论】:

  • 您可以发布您的 SQL 并记录您的错误以供所有人查看吗?
  • 请添加代码和错误日志
  • 已发布代码..谢谢
  • 请添加创建表语句作为给出错误的列不在您的代码中
  • stackoverflow.com/questions/15438840/… ,都在这里解释。

标签: php mysql sql-insert default-value


【解决方案1】:

表中的item_name 字段声明为not null,没有默认值。一种方法是在您的insert 语句中以与您提供数量相同的方式提供它。

另一种方法是更改​​表的定义以允许nulls:

ALTER TABLE itemlist MODIFY COLUMN item_name VARCHAR(10) NULL;

或者有一个默认值:

ALTER TABLE itemlist ALTER item_name SET DEFAULT 'somename';

【讨论】:

  • 实际上它被声明为非空,因为 2 个表之间存在关系。我试图传递相同的字段,但只有数量会改变。例如,我订购了 500doz,而我只收到 450,所以 450 将是我数量的新值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
相关资源
最近更新 更多