【问题标题】:Add multiple rows from a query php mysql从查询 php mysql 添加多行
【发布时间】:2015-05-13 13:28:30
【问题描述】:

我正在尝试将查询结果添加到一个新的空表中,该表已经存在..

到目前为止,这是我的代码,没有出现错误,但也没有插入,

任何帮助都会很好..

<?php require_once('../Connections/OASDB.php');

mysql_select_db($database_OASDB, $OASDB);

$sql = "SELECT SnPf, InvoiceNo, CustomerName FROM VSTStbl000010 WHERE SnPf =   '40446'";
$result = mysql_query($sql) or die(mysql_error());

$INS = array();

while($row = mysql_fetch_assoc($result)) {
 $INS[] = $row;
}

foreach( $INS as $row ) {
$INS[] = '("'.mysql_real_escape_string($row['InvoiceNo']).'",   '.$row['CustomerName'].')';

mysql_query('INSERT INTO phptest (InvoiceNo, CustomerName) VALUES   '.implode(',', $INS));
}

?>

更新 -

我现在正在使用...

<?php require_once('../Connections/OASDB.php');

mysql_select_db($database_OASDB, $OASDB);

$sql = "SELECT SnPf, InvoiceNo, CustomerName FROM VSTStbl000010 WHERE SnPf =    '18490'";
$result = mysql_query($sql) or die(mysql_error());

$INS = array();

while($row = mysql_fetch_assoc($result)) {
$INS[] = $row;
}

foreach( $INS as $row ) {  
  mysql_query("INSERT INTO phptest (InvoiceNo, CustomerName) VALUES  (".$row['InvoiceNo'].", '".$row['CustomerName']."') or die(mysql_error()");
}

?>

很遗憾,我恢复到没有错误并且仍然没有插入?

感谢到目前为止的所有帮助..

【问题讨论】:

  • 没有错误,因为您没有检查任何 INSERT。
  • 这是一种草率的做法。此外,您不检查错误。如果您查找它,MySQL 会告诉您出了什么问题。
  • 我删除了错误检查以使问题更简洁。

标签: php mysql insert


【解决方案1】:

每次放入数组时,您都会向数组中添加另一个元素。

这完全把一切都搞砸了,让你的查询失败。

在您发布更新后,您错误地将 PHP 命令“die()”插入到查询中。你需要把它拿出来。

只需复制/粘贴我提供的代码,即可拖放。

如果你这样做,它是否有效......

mysql_select_db($database_OASDB, $OASDB);

$sql = "SELECT SnPf, InvoiceNo, CustomerName FROM VSTStbl000010 WHERE SnPf =   '40446'";
$result = mysql_query($sql) or die(mysql_error());

$INS = array();

while($row = mysql_fetch_assoc($result)) {
 $INS[] = $row;
}

foreach( $INS as $row ) {  
  mysql_query("INSERT INTO `phptest` (`InvoiceNo`, `CustomerName`) VALUES (".$row['InvoiceNo'].", '".$row['CustomerName']."')";
}

【讨论】:

  • 谢谢你,我知道你是从哪里来的,这又开始了旧的大脑,只是得到了一个意想不到的';'现在...
  • 发布任何修改后的代码作为您问题的补充。只需复制粘贴我发布的 PHP 即可。
  • 这段代码是你的主要问题。 [] 告诉 PHP 在该数组中创建一个新元素,但您正在单步执行该数组。另外,我不知道您是否可以在mysql中的字符串周围使用双引号,我一直使用单引号
  • foreach( $INS as $row ) { $INS[] =
  • 您没有正确使用模具。你把它放在查询中。只需复制/粘贴我发布的代码即可。
【解决方案2】:

谢谢你,Notorious,是的,我已经使用了那个 put,现在它正在使用此代码..

再次感谢

foreach( $INS as $row ) {  
  mysql_query("INSERT INTO phptest (InvoiceNo, CustomerName) VALUES (".$row['InvoiceNo'].", '".$row['CustomerName']."')");
}

【讨论】:

  • 如果我冒犯了你,我真的很抱歉,这不是我的本意,没有你我不会解决这个问题,我以为你只是勾选了解决问题的最后一个。
  • 别担心,那天我一定很暴躁。如果可以的话,我会取消投票,但它不会让我这样做。对不起
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多