【发布时间】:2016-06-08 21:27:31
【问题描述】:
我有一些来自这个查询语句的行:
SELECT * from jkd where idno='$id';
我想将这些行中的值“复制”到其他表:
INSERT INTO tmpjkd(pop, name, address) VALUES($pop, $name, $address);
我试过这个:
$jkd = SELECT * from jkd where idno='$id';
$sql = pg_query("SELECT * from jkd where idno='$id'");
while ($row = pg_fetch_object($sql)){
$pop = $jkd['pop'];
$name = $jkd['name'];
$address = $jkd['name'];
pg_query("INSERT INTO tmpjkd(pop, name, address) VALUES($pop, $name, $address)");}
但是没有运气。请帮帮我...
更新: 我在 Drupals 中写道:
$sql = db_query("SELECT * from jkd where idno='$id'");
while ($row = db_fetch_object($sql)){
$pop = $jkd['pop'];
$name = $jkd['name'];
$address = $jkd['name'];
db_query("INSERT INTO tmpjkd(pop, name, address) VALUES($pop, $name, $address)");}
【问题讨论】:
-
这是构建查询的一种糟糕方式,因为您让自己对 SQL 注入攻击敞开大门。尝试阅读准备好的语句,Postgres 支持它们,PHP PDO Postgres 驱动程序也支持
-
另外,为什么要将行复制到另一个表中?也许您应该阅读数据库规范化。您应该从另一个表中引用您需要的数据,而不是复制它。希望你能收到这个。
-
我需要将值复制到临时表中,以便进一步处理。关于sql注入,这在drupal上写安全吗?实际代码已更新
标签: php postgresql sql-insert