PHP SQL:从具有不同表,列,原色和键的数组插入或更新

时间:2015-06-03 12:49:37

标签: php sql mysqli

我甚至不知道这是否可行,但我希望它是。我创建了一个在页面上创建表单的脚本。提交时,脚本会验证表单中的所有字段,并应将内容插入数据库。

表单中的字段可以包含不同的表,列,主键和键。

这是一个例子:

 'biler_url' => 
array (size=19)
  'fs_inputs_type' => string 'url' (length=3)
  'fs_inputs_name' => string 'biler_url' (length=9)
  'fs_inputs_table' => string 'biler' (length=5)
  'fs_inputs_placeholder' => string 'Url' (length=3)
  'fs_inputs_value' => string '' (length=0)
  'fs_inputs_label' => string '' (length=0)
  'fs_inputs_set_class' => string 'url_class' (length=9)
  'fs_inputs_set_id' => string 'url_id' (length=6)
  'fs_inputs_id' => int 1
  'fs_inputs_primary' => string 'biler_id' (length=8)
  'fs_inputs_selector' => string '$_GET["id"]' (length=11)
  'fs_inputs_element' => string 'input' (length=5)
  'fs_inputs_title' => string 'Biler Url' (length=9)
  'fs_inputs_SQL_type' => string 'UPDATE' (length=6)
  'fs_inputs_standard_value' => null
  'fs_inputs_filter' => string 'FILTER_VALIDATE_URL' (length=19)
  'fs_inputs_required' => string 'true' (length=4)
  'fs_inputs_min_length' => null
  'fs_inputs_max_length' => int 50

因此,输入SQL应如下所示:

UPDATE biler SET 'biler_url' = $_POST['biler_url'] WHERE biler_id = $_GET['id'];

我最大的问题是插入,因为所有值都会单独插入,因为我不知道属于同一个表的先前值是在哪里插入的。

1 个答案:

答案 0 :(得分:0)

托马斯,

您不清楚更新/新部分。 创建表单时,您必须知道是在某个表中显示现有行还是创建新行。 我总是在表格中发送带有指令的东西,如下所示: (我假设bilerid是你桌子的主键)

for new:

<form action="..." Method="POST" name="myForm">
 <input type="hidden" name="theAction" value="new">
 <input type="hidden" name="bilerid" value="-1">
 ....rest of the form here...
</form>

<form action="..." Method="POST" name="myForm">
 <input type="hidden" name="theAction" value="update">
 <input type="hidden" name="bilerid" value="1435">
 ....rest of the form here...
</form>

然后收到后,你只需检查$ _POST [“theAction”]是否有新的/更新,并在SQL中插入或更新处理它。

请注意,您还应该检查传递的bilerid是否属于发布此表单的人员。你不希望人们摆弄他们不拥有的身份证。 (但我不确定这是否适用于您的情况)