我有我的第一个问题回答这里:link循环通过阵列插入如果ID
我扩展的问题是,我可以成功地更新行插入到数据库,但由于某些原因,我不能当的itemid = 0插入?下面的代码,如果我这样做,增加了另外8行?:
for ($i = 0; $i < count($values); $i++)
{
$item = $values['item'][$i];
$description = $values['description'][$i];
$rate = $values['rate'][$i];
$itemid = $values['itemid'][$i];
if($itemid)
{
// Update item
$query = "UPDATE `invoice_items`...";
}
else
{
// Add new item
$query = "INSERT INTO `invoice_items`...';
}
}
#
更新
#这里是我现在,但我仍然插入额外的7个项目的数据库当我只更新项目:
foreach ($outArray as $row)
{
$item = $row['item'];
$description = $row['description'];
$rate = $row['rate'];
$qty = $row['qty'];
$price = $row['price'];
$itemid = $row['itemid'];
if($row['itemid'] >= 1)
{
$query = "UPDATE `invoice_items` SET `item` = '?', `description` = '?', `rate` = '?', `qty` = '?', `price` = '?' WHERE `id` = '?' LIMIT 1;";
$query_prepare = $this->prep_q($query,array($item,$description,$rate,$qty,$price,$itemid));
}
else
{
$query = "INSERT INTO `invoice_items` (`item`,`invoice_id`,`description`,`rate`,`qty`,`price`) VALUES ('?','?','?','?','?','?') LIMIT 1;";
$query_prepare = $this->prep_q($query,array($item,$invoice_id,$description,$rate,$qty,$price));
}
$this->setquery($query_prepare);
}
向我们展示完整代码 – mdziekon 2012-07-19 06:07:41
为数据库列设置的数据类型是什么?执行'desc invoice_items'SQL查询。 – Stegrex 2012-07-19 06:13:01