Php 添加新的HTML行&;插入数据库

Php 添加新的HTML行&;插入数据库,php,mysql,sql,Php,Mysql,Sql,我有以下js文件: function displayResult() { var table=document.getElementById("addTable"); var row=table.insertRow(2); var cell1=row.insertCell(0); var cell2=row.insertCell(1); cell1.innerHTML="<input type='text' name='expense[]' styl

我有以下js文件:

function displayResult() {
    var table=document.getElementById("addTable");
    var row=table.insertRow(2);
    var cell1=row.insertCell(0);
    var cell2=row.insertCell(1);
    cell1.innerHTML="<input type='text' name='expense[]' style='padding:2px;' size='80'>";
    cell2.innerHTML="<div align='center'><input type='text' name='expensecost[]'         style='padding:2px;' size='6'></div>";
}
它添加了taskid和refid,但对于费用和费用,它说:

|  Array[0]  | 0
|  Array[1]  | 0
|  Array[2]  | 0

当我尝试添加3行时会发生这种情况。这是什么原因?我该如何修复它?我是否需要另一个唯一的阵列?不确定

我更喜欢将元素编号添加到HTML输出中

<input type='text' name='expense[0]' style='padding:2px;' size='80'>

我更愿意将元素号添加到HTML输出中

<input type='text' name='expense[0]' style='padding:2px;' size='80'>

尝试将SQL更新为类似以下内容

$sql="INSERT into b_report_expense2 (TASK_ID,EXPENSE_DESC,EXPENSE_COST,REF)
      VALUES (
      '" . mysql_real_escape_string($_POST['taskid']) . "',
      '" . mysql_real_escape_string($_POST['expense'][$index]) . "',
      '" . mysql_real_escape_string($_POST['expensecost'][$index]) . "',
      '" . mysql_real_escape_string($_POST['refid']) . "')";

您最好使用SQL,然后尝试将SQL更新为

$sql="INSERT into b_report_expense2 (TASK_ID,EXPENSE_DESC,EXPENSE_COST,REF)
      VALUES (
      '" . mysql_real_escape_string($_POST['taskid']) . "',
      '" . mysql_real_escape_string($_POST['expense'][$index]) . "',
      '" . mysql_real_escape_string($_POST['expensecost'][$index]) . "',
      '" . mysql_real_escape_string($_POST['refid']) . "')";

您最好使用和

您的输入周围还有一个额外的区域,不需要添加索引键。但是,SQL行不能作为taskid、expense、expensecode和refid使用,因为它不是html输出的常量。但我想refid是int。expense和expensecost可能是任何可能导致错误解释的内容。taskid、expense、expensecode和refid不应该用单引号括起来吗?这取决于数据库表使用的字段,而不是表名。我指的是$\u POST['taskid',而不是$\u POST[taskid]在值中,您的输入周围有一个额外的区域,无需添加索引键。但是,SQL行不能作为taskid、expense、expensecode和refid使用,因为它不是html输出的常量。但我想refid是int。expense和expensecost可能是任何可能导致错误解释的内容。taskid、expense、expensecode和refid不应该用单引号括起来吗?这取决于用于数据库表的字段,而不是表名。我指的是值中的$\u POST['taskid',而不是$\u POST[taskid]
$sql="INSERT into b_report_expense2 (TASK_ID,EXPENSE_DESC,EXPENSE_COST,REF) VALUES('".$_POST['taskid']."','".$_POST['expense'][$index]."','".$_POST['expensecost'][$index]."','".$_POST['refid']."')";
$sql="INSERT into b_report_expense2 (TASK_ID,EXPENSE_DESC,EXPENSE_COST,REF)
      VALUES (
      '" . mysql_real_escape_string($_POST['taskid']) . "',
      '" . mysql_real_escape_string($_POST['expense'][$index]) . "',
      '" . mysql_real_escape_string($_POST['expensecost'][$index]) . "',
      '" . mysql_real_escape_string($_POST['refid']) . "')";