Php Mysql同一行复制同一表120次

Php Mysql同一行复制同一表120次,php,mysql,Php,Mysql,简单mysql表: CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT , `name` TEXT NOT NULL , `surname` text NOT NULL , `city` text NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM 并插入如下内容: INSERT INTO `users` (`id`, `name`, `surname`, `city`) V

简单mysql表:

CREATE TABLE  `users` (
 `id` INT NOT NULL AUTO_INCREMENT ,
 `name` TEXT NOT NULL ,
 `surname` text NOT NULL ,
 `city` text NOT NULL ,
PRIMARY KEY (  `id` )
) ENGINE = MYISAM
并插入如下内容:

INSERT INTO `users` (`id`, `name`, `surname`, `city`) VALUES (1,`rock`,`fixed`,`london`);
如何使用不同的主id将同一行的表详细信息输入100次?

由于id具有“自动增量”属性,因此每次输入数据时都应生成一个唯一的id

因此,插入字符串可以如下所示:

INSERT INTO `users` (`name`, `surname`, `city`) VALUES (`rock`, `fixed`, `london`);

id字段将每次自动递增,为您提供唯一的id。使用php,您可以这样做:

for($i=0; $i< 119; $i++)
{
     //execute your query here, do not include your id column
     INSERT INTO `users` (`name`, `surname`, `city`)   
     VALUES   (`rock`,`fixed`,`london`);
 }  
根据评论进行编辑: 您的代码无法工作,因为您正在循环外执行查询,您的代码应该如下所示:

<?php 

*/here mysql connection 
for($x=0; $x<100; $x++) 
{ 
   $sql =INSERT INTO users (name, surname, city) 
          VALUES (rock,fixed,london); 
   $status = $conn->query($sql);
} 

if ($status) 
{  echo "New record created successfully"; }
else { echo "Error: " . $sql . "<br>" . $conn->error; } 
$conn->close(); 
?>
只需使用以下查询:

INSERT INTO users ( name, surname, city) VALUES ('rock','fixed','london');

请尝试以下代码

for ($i=0; $i<= 119; $i++){
      //exclude id and do auto increament and primary key
       $qry = "INSERT INTO `users` (`name`, `surname`, `city`) VALUES (`rock`,`fixed`,`london`)";
}

将其作为没有循环的单个SQL语句执行:-

INSERT INTO `users` (`id`, `name`, `surname`, `city`) VALUES (1,`rock`,`fixed`,`london`);
SELECT NULL, `rock`, `fixed`, `london`
FROM
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) units
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11
) tens
这两个子查询只返回数字的范围。交叉连接时,一个10行,另一个12行,总共返回120行。这120行只是您的固定值,但id为NULL,自动递增将其排序为唯一值

请注意,您可以这样做更大的范围。例如,如果您想插入653行,只需相当随机的数字选择:-

SELECT NULL, `rock`, `fixed`, `london`
FROM
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) units
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) tens
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) hundreds
WHERE (units.aCnt + 10 * tens.aCnt + 100 * hundreds.aCnt) < 653
或将id字段指定为计算值:-

SELECT 1 + units.aCnt + 10 * tens.aCnt + 100 * hundreds.aCnt, `rock`, `fixed`, `london`
FROM
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) units
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) tens
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) hundreds
WHERE (units.aCnt + 10 * tens.aCnt + 100 * hundreds.aCnt) < 653

在insert查询中删除id列和相应的值。在用户名、姓氏、城市值中插入“rock”、“fixed”、“london”;好的,现在我如何复制同一行100次,我需要复制数据100次吗?或者一些小技巧?循环它。对于$x=0$x@Purohit您想添加记录120次还是100次?这个答案和你的答案是一样的@luthandolook,现在我如何复制同一行100次,我需要复制100次数据吗?还是一些小技巧?@LuthandoLoot的答案告诉你如何在PHP中执行for循环,使用它在PHP中插入100行,而不是按照我的要求输入100次或120次,每次执行时只需输入1次行。我使用了代码:–我使用php类型的任何方式,但在mysql中,它显示:1136-列计数与php中第1行的值计数不匹配。使用它时,没有按照我的要求输入100次或120次,每次执行时只需输入1个时间行。我使用了代码:–@Purohit这是因为您在循环外执行查询,请将if语句移到循环内loop@Purohit检查我编辑的答案,一切正常,@感谢您的解释。这可能比从php中分别插入120个插件要快得多。
SELECT NULL, `rock`, `fixed`, `london`
FROM
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) units
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) tens
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) hundreds
WHERE (units.aCnt + 10 * tens.aCnt + 100 * hundreds.aCnt) < 653
SELECT 1 + units.aCnt + 10 * tens.aCnt + 100 * hundreds.aCnt, `rock`, `fixed`, `london`
FROM
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) units
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) tens
CROSS JOIN
(
    SELECT 0 AS aCnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 
) hundreds
WHERE (units.aCnt + 10 * tens.aCnt + 100 * hundreds.aCnt) < 653