使用PHP和Jquery在MySQL中插入/更新多行

时间:2011-11-26 15:48:34

标签: php mysql insert

我有一个表格,该表格由来自一个数据库的MS Sql查询填充,该表格提供患者访问的值和这些访问产生的收入。我有一个复选框,填充相应的文本输入框,显示已支付访问。我的问题是如何使用MySQL和PHP添加/更新多行。有两个不同的数据库(MySQL和MS SQL)。

HTML表格。

<table>
<thead>
<tr>
<th>First Name / Last Name</th>
<th>Alias</th>
<th>Status</th>
<th class="amountDue">$00,000.00</th>
<th colspan="2" class="appliedAmount">$00,000.00<?th>
<th class="variance">$00,000.00</th>
<th>Complete</th>
</tr>
<tr>
<td><td>
<td><td>
<td><?php echo $patRow['VisitNum']; ?></td>
<td><?php echo $patRow['VisitName']; ?></td>
<td><?php echo $patRow['AmountDue']; ?></td>
<td><input type="checkbox"></td>
<td><input type="text" name="Amount[]"></td>
<!-- Invoice Populated from Database --!>
<td><select class="invoiceNumber">
    <option>4565</option>
    </select>
</tr>

</tr>
</table>

现在是PHP。

<?php
require('../assets/dbconnect.php');
$size_array = count($_POST['Amount']);
for ($i=0; $i<$size_array; $i++){
$query = 'INSERT INTO webportal.test (id, PSID, SysPatVisitID, AmountDue, Amount, InvoiceNum)'.
" VALUES ('', '".mysql_real_escape_string($_POST['PSID'][$i])."', 
'".mysql_real_escape_string($_POST['SysPatVisitID'][$i])."'', 
'".mysql_real_escape_string($_POST['AmountDue'][$i])."'', 
'".mysql_real_escape_string($_POST['Amount'][$i])."'', 
'".mysql_real_escape_string($_POST['InvoiceNum'][$i])."')
ON DUPLICATE KEY UPDATE content=VALUES(
'".mysql_real_escape_string($_POST['AmountDue'][$i])."'',
'".mysql_real_escape_string($_POST['Amount'][$i])."'',
'".mysql_real_escape_string($_POST['InvoiceNum'][$i])."''
";

$result = mysql_query($query) or die (mysql_error());
}

所以这就是我到目前为止,当我尝试插入我的数据库时,它只插入第一条记录而且我收到错误。最终我想用Jquery传递这些变量,但我只需要让PHP先工作。

1 个答案:

答案 0 :(得分:0)

$query = 'INSERT INTO webportal.test (PSID, SysPatVisitID, AmountDue, Amount, InvoiceNum)'.
" VALUES ('".mysql_real_escape_string($_POST['PSID'][$i])."', 
'".mysql_real_escape_string($_POST['SysPatVisitID'][$i])."', 
'".mysql_real_escape_string($_POST['AmountDue'][$i])."', 
'".mysql_real_escape_string($_POST['Amount'][$i])."', 
'".mysql_real_escape_string($_POST['InvoiceNum'][$i]).")
ON DUPLICATE KEY UPDATE content=VALUES(
'".mysql_real_escape_string($_POST['AmountDue'][$i])."',
'".mysql_real_escape_string($_POST['Amount'][$i])."',
'".mysql_real_escape_string($_POST['InvoiceNum'][$i])."'
";
  • 您未正确匹配''". <stuff> ."''。你只需要一个结束时间。
  • 您忘记了VALUES的结束括号。
  • 如果您希望DBMS自动增加id,请不要将其包含在您的查询中。

此外,出于某种原因存在错误消息。学习理解它们将大大提高您的调试能力。如果您不理解错误,请在MySQL.com上查找。