在PHP中循环插入查询

时间:2012-04-19 10:16:49

标签: php mysql html sql

我遇到麻烦,在SQL中通过PHP脚本插入相同的值N次。 我有这个vslue?

Table Info  column (ID,Name, LastName,)
Valus ('',Alain,Alian);

我想要做的是将此值插入到同一个表中10次使用While循环播放E.G 或类似的东西 任何想法?。

<?php
    $i=1;
    While ($i<= 5)      
    {
       $sql="INSERT INTO arivage
          (ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color)
          VALUES
          ('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color')";
       $i++;
    }
?>

5 个答案:

答案 0 :(得分:3)

你有错误吗?

你需要什么是可行的

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
  die('Could not connect: ' . mysql_error());
}

for($i = 0; $i<10; $i++) {
    $sql="INSERT INTO arivage (ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) VALUES ('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color')";
    $result = mysql_query($sql);
    if (!$result) {
     die('Invalid query: ' . mysql_error());
    }
}

答案 1 :(得分:1)

我假设你有一个与数据库的连接(通过使用mysql_connect()+ mysql_select_db()),并在编写它之后执行你的查询(通过mysql_query($ sql))。

我需要知道列 ID_Ship 的数据类型是什么?这是 PRIMARY KEY auto_increment 吗?如果是,那么您需要更改您的查询:

INSERT INTO arivage (ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) 
VALUES ('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color')

为:

INSERT INTO arivage (Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) 
VALUES ('$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color');

注意:ID_ship已删除,''也已删除。

此删除是为了防止为第2个,第3个等记录插入相同的主键。请记住,主键必须是唯一的。不指定它会让MySQL插入生成的值(因为它是auto_increment)。

答案 2 :(得分:0)

试试这个..这可能有效

$sql= "INSERT INTO TABLE_NAME(field1,field2) VALUES( ";
    for($i=0;$i<10;$i++)
    {
       $sql.="('value1', 'value2'), "
    }
    $sql.=" )";

答案 3 :(得分:0)

你应该添加

mysql_query($sql);

代码,以便在循环之间执行查询。

$i=1;
While ($i<= 5)      
{
 $sql="INSERT INTO arivage
 (ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color)
 VALUES('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color')";

 mysql_query($sql);

    $i++;
}

答案 4 :(得分:0)

如果您需要绑定参数,这是另一种方法。

public function insert($rows) 
    {
        $setValues = null;
    
        foreach($rows as $column => $value) 
        {
          $setValues .= "{$column}=:{$column},";
        }

        $setValues = rtrim($setValues, ',');

        $query = "INSERT INTO {$this->_table} SET {$setValues}";

        $stmt = $this->_conn->prepare($query);

        foreach($rows as $col => $val) 
        {
            $stmt->bindParam(":{$col}", $val);
        }
      
        $stmt->execute();
    }