我有一个下拉列表,其中选择了默认值。如果有值,则if语句允许更新数据。如果没有值,那么将插入整行。如果我将第三个值硬编码为1,$category_of_taxom1
则它可以工作。但是,当我将其设置为插入时,它不起作用。该更新工作正常,因此,如果我在数据库中手动创建记录,则可以通过如下所示的更新SQL对其进行更新。但是,如果我尝试INSERT会没有运气吗?(我已经硬编码了要插入的前三个项目,第三个应该是上面提到的变量。
我有这个选择清单
<select name="categorySelect1fromDB" >
<option value ="">EMPTY</option>';
<option value="1" <?php echo ($category_of_taxom1 == 1)?"selected":""; ?>>A</option>
<option value="2" <?php echo ($category_of_taxom1 == 2)?"selected":""; ?>>B</option>
<option value="3" <?php echo ($category_of_taxom1 == 3)?"selected":""; ?>>C</option>
<option value="4" <?php echo ($category_of_taxom1 == 4)?"selected":""; ?>>D</option>
</select>
和这套陈述。
if(isset($_POST['save']))
{
$category_of_taxom1 = $_POST['categorySelect1fromDB'];
$number_of_taxom1 = $_POST['number_of_taxom1'];
if (!empty($category_of_taxom1)){ //This is the value fromDB if not empy then do below else do last
pg_query("UPDATE record_tbl SET category_of_taxom ='$category_of_taxom1', number_of_taxom ='$number_of_taxom1' WHERE sheet_id = '$sheet_id' AND line = 1");
echo "Updated!";
} else
{
pg_query("INSERT INTO record_tbl (line, taxom_id, category_of_taxom, number_of_taxom, sheet_id) VALUES (1,1,'$category_of_taxom1','$number_of_taxom1','$sheet_id')");
echo "New Record ?Saved!";
}
}
这是一个在我的站点中其他地方使用的pgsql行的示例:
$sql8 = "INSERT INTO record_tbl (line, taxom_id, category_of_taxom, number_of_taxom, sheet_id) VALUES (8,8,'$_POST[gammarus_numbers]','$_POST[countgammarus]','$sheetid')";
$result = pg_query($sql8);
字段'category_of_taxom'的数据类型很可能设置为varchar,这意味着在使用INSERT时,该值应在值周围加上引号。因此,您可以:
1)在数据库中将category_of_taxom的数据类型更改为整数
2)在INSERT语句中的值周围加上引号:
('1','1','1','$number_of_taxom1',$sheet_id)
相关文档:mysql-是否引用数字?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句