循环使用pg_fetch_row

时间:2015-12-01 04:41:39

标签: php sql postgresql

如果我需要在php中循环以插入最多6行的数据。因为如果我使用这个代码,它只会出现一次插入而不会重复。

while ($row=pg_fetch_row($sql1))
{
$sqlinsert="insert into rpt_printing_detail values (  '$row[0]','$row[1]','$row[2]','$row[3]','$row[4]','$row[5]','$row[6]','$row[7]','$row[8]','$row[9]')";
}

对于这样的数据 enter image description here

我的代码只插入一个插入内容:

insert into rpt_printing_detail values ( '201501', 'Detail Billing', '1', '1', '16397', '0', '0', '0', '0', '0' ) 

1 个答案:

答案 0 :(得分:0)

您的代码将SQL查询创建为字符串。它对数据库没有任何作用。

假设循环外的后续语句在变量中运行查询,如:

while ($row=pg_fetch_row($sql1))
{
$sqlinsert="insert into rpt_printing_detail values (  '$row[0]','$row[1]','$row[2]','$row[3]','$row[4]','$row[5]','$row[6]','$row[7]','$row[8]','$row[9]')";
}
pg_query($sqlinsert);

由于只有一个查询 - 你用每个循环覆盖它 - 它只进行一次更改。

无论这里有什么问题,你都有一个重大错误。阅读the PHP documentation on SQL injection,然后使用pg_query_params或最好使用PDO。