-1

我无法通过 PHP 脚本在 SQL 中插入相同的值 N 次。我有这个vslue?

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

我想要做的是在同一个表中插入这个值 10 次使用 EG 的 While 循环或类似的任何想法?

<?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++;
    }
?>
4

5 回答 5

5

你有一些错误吗?

你需要的是可行的

$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());
    }
}
于 2012-04-19T10:23:20.777 回答
0

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

我需要知道列ID_Ship的数据类型是什么?这是PRIMARY KEYauto_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 被移除,'' 也被移除。

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

于 2012-04-19T11:22:49.407 回答
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();
    }
于 2020-09-19T20:47:34.567 回答
-1

试试这个..这可能有效

$sql= "INSERT INTO TABLE_NAME(field1,field2) VALUES( ";
    for($i=0;$i<10;$i++)
    {
       $sql.="('value1', 'value2'), "
    }
    $sql.=" )";
于 2012-04-19T10:22:47.447 回答
-1

你应该添加

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++;
}
于 2012-04-19T10:24:44.603 回答