php& mysql:Echo' ed表值无法重新插入?

时间:2017-02-07 16:00:39

标签: php mysql

我有一份成分列表,其中有大约5-6个值,如成本,商店,包装,数量等。

然后我将表中的数据回显到下拉菜单中,以便可以选择它们。但是,当我更新或重新插入新表时,我收到一条错误消息,说“"成本不是默认的"”,即使它是。

所以基本上发生了什么,当我用它来将它更新为新表时,我的下拉菜单不是数据库值本身。它的字符串化和它的价值是全新的。有没有办法阻止这种情况发生,并告诉mysql或PHP我想要的数据库值,我最初选择时,而不是它的字符串版本?

<select name="ingredients_list" placeholder="Ingredients">
<option disabled selected value> -- select an ingredient -- </option>
<?php
    $sql = "SELECT item, store
            FROM ingredients
            ORDER BY item";
    $result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($col = $result->fetch_assoc()) {
        echo  "<option>" . $col['item'] . " (" . $col['store'] . ") " . "</option>";
    }
} 
    ?>

错误讯息:

Error: INSERT INTO meal_ingredients (meal_name, item) VALUES ('turkey', 'Bacon (Lidl)')
Field 'package' doesn't have a default value 

它有一个值,但它不使用它,因为它使用字符串化&#34;培根&#34;下拉列表,而不是数据库本身的数据。

1 个答案:

答案 0 :(得分:0)

您正尝试仅插入表列的一部分值..名为package的此列之一具有非空约束,因此部分插入

INSERT INTO meal_ingredients (meal_name, item) VALUES ('turkey', 'Bacon (Lidl)')

不尊重这种约束

可能是你需要的

INSERT INTO meal_ingredients (meal_name, item,package )
        VALUES ('turkey', 'Bacon (Lidl)', 'my_package_value')