使用while循环插入数据库

时间:2014-11-02 10:10:23

标签: php mysql insert

我需要将名为wishlist的表中的数据插入到另一个表(wishlisturi_salvate)中,并且插入看起来没问题,有些东西不能正常工作而且没有进行任何牺牲。谢谢你的帮助,我真的很感激

<?php
session_start();
include ('conex.php');
$sel2="select id_wishlist  from wishlisturi_salvate";
$que2=mysql_query($sel2);
while($rez2=mysql_fetch_array($que2))
{
$a=$rez2['id_wishlist'];
}
$id_wishlist=$a;
echo $id_wishlist;
$sel="SELECT * from wishlist";
$que=mysql_query($sel);
while ($rez=mysql_fetch_array($que))
{
$insert="INSERT INTO 'wishlisturi_salvate'('id_user', 'id_wishlist', 'id_produs',        'nume_produs', 'pret_produs', 'cantitate_produs', 'suma') 
   VALUES('".$_SESSION['id']."','".$id_wishlist."','".$rez['id_produs']."','".$rez['nume_produs']."','".$rez['pret_produs']."','".$rez['cantitate_produs']."','".$rez['suma']."')";
if(!mysql_query($insert)) echo "fml";
echo "<br>".$insert;
}

if(mysql_query($insert))
{
header("location:user.php");
}
else echo "Nu s-a facut inserarea"; 
?>

3 个答案:

答案 0 :(得分:1)

由于查询中的错误,最有可能无法插入:

蝙蝠的权利,已经出现了错误:

INSERT INTO 'wishlisturi_salvate'('id_user', 'id_wishlist', 'id_produs',        'nume_produs', 'pret_produs', 'cantitate_produs', 'suma') 

正确引用表/列名称必须是反引号,而不是单引号

INSERT INTO `wishlisturi_salvate` (`id_user`, `id_wishlist`, `id_produs`, `nume_produs`, `pret_produs`, `cantitate_produs`, `suma`)

或者只是省略它们,在这种情况下没问题。

强制性注释:

  

Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO,here is a good tutorial

旁注:

如果您还没有,请始终打开错误报告:

error_reporting(E_ALL);
ini_set('display_errors', '1');

答案 1 :(得分:0)

首先,我会建议您使用PDOmysqli而不是mysql来避免SQL注入。

无论如何,如果你想将一个表中的元素插入到另一个表中,我建议你使用带有subselect的insert语句。这样它会更快,你会浪费更少的记忆。

答案 2 :(得分:0)

不是答案,更多是观察;循环结果以构建一次发送到db的单个SQL插入多语句将会更有效。

$insert = "INSERT INTO 'wishlisturi_salvate'('id_user', 'id_wishlist', 'id_produs',        'nume_produs', 'pret_produs', 'cantitate_produs', 'suma') VALUES ";

foreach( of your results ){
$insert .= "(x,y,z,a,b,c,d),";
}

// now trim off last comma, then send to db.
// or create an array then join it to the $insert

可在此处阅读相同的信息:http://www.electrictoolbox.com/mysql-insert-multiple-records/