我有一份成分列表,其中有大约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;下拉列表,而不是数据库本身的数据。
答案 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')