【发布时间】:2013-08-08 14:28:56
【问题描述】:
我有一个选择默认值的下拉列表。如果那里有值,则 if 语句允许更新数据。如果没有值,则将插入一整行。如果我将第三个值硬编码为 1,它将起作用。但是,当我将其设置为 $category_of_taxom1 时,插入不起作用。更新工作正常,所以如果我在数据库中手动创建记录,我可以通过下面显示的更新 SQL 更新它。但是,如果我尝试 INSERT 没有运气? (我已经硬编码了前3个要插入的项目,第三个应该是上面提到的变量。
我有这个选择列表
<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);
【问题讨论】:
-
一旦我有一个示例工作,我将把它切换到 PDO 参数。
-
像
$number_of_taxom1一样将值放在单引号中 -
您使用的是什么数据库? pg_query() 是否意味着 PostgreSQL?更新:我利用了谷歌的全能。所以我的问题现在变成了列名是否应该有单引号?
-
是的,对不起,我应该这么说。我已经编辑了这个问题,以便在我网站的其他地方显示此代码的工作示例。
-
如果我对 sheet_id 进行硬编码,它现在正在工作。所以这只是我弄清楚我认为的“”的问题。
标签: php sql insert sql-update sql-insert