我在循环将数据插入 mysql 数据库时遇到 php 问题


I'm having trouble with php while loop inserting data in to mysql database

所有的php代码都在下面。

该脚本在插入影院数据库表部分之前工作正常。我有回声每个变量的内容都通过循环运行,以确保它们具有所有其中的正确数据。但是由于某种原因,某些数据没有入到数据库中,即使它包含在插入语句之前的变量中。总共有 18 个循环,但只有 12 行数据插入到数据库中。我想可能一个插入语句的数据太多了,所以尝试将其限制为十个,然后我计划使用 from id desc 查询选择其余的,但在前 10 个中,只有插入了 7 个告诉我它必须是插入语句,而不是数据库表。我寻找了一个原因,尝试了很多不同的东西,但仍然没有快乐。这对我来说实际上是最后的手段,因为我是一个非常DIY的人,不喜欢寻求帮助。提前感谢我得到的任何帮助!

<?php
require('../php/connect.php');
$table = "CREATE TABLE IF NOT EXISTS cinema (
    id int(20) NOT NULL AUTO_INCREMENT,
    tags VARCHAR(200) NOT NULL,
    title VARCHAR(200) NOT NULL,
    description VARCHAR(300) NOT NULL,
    image VARCHAR(100) NOT NULL,
    link VARCHAR (200) NOT NULL,
    PRIMARY KEY(id))";
$result = mysqli_query ($dbc, $table);

$select = "SELECT * FROM search";
$r = mysqli_query ($dbc, $select);
while ( $row = mysqli_fetch_array( $r , MYSQLI_ASSOC ))
{
    $tags = $row['tags'];
    $title = $row['title'];
    $description = $row['description'];
    $image = $row['image'];
    $link = $row['link'];
    echo $tags;
    echo $title;
    echo $description;
    echo $image;
    echo "$link <br />";
    echo "one <br /><br />";
    $insert = "INSERT INTO cinema (tags, title, description, image, link)
                VALUES ('$tags', '$title', '$description', '$image', '$link')";
    $run = mysqli_query ($dbc, $insert);                        
}

if($result) {
    echo 'success';
}
else {
    echo 'failed';
}   

在插入语句中使用 LOW PRIORITY 关键字以避免数据较大时的冗余。

INSERT LOW PRIORITY INTO cinema('a','b','c') VALUES('x','y','c')

试试这个:

$r = mysqli_query ($dbc, $select);
while ( $row = mysqli_fetch_array( $r , MYSQLI_ASSOC ))
{  
    $tags = $row['tags'];
    $title = $row['title'];
    $description = $row['description'];
    $image = $row['image'];
    $link = $row['link'];
    echo $tags;
    echo $title;
    echo $description;
    echo $image;
    echo "$link <br />";
    echo "one <br /><br />";
    $insert = "INSERT INTO cinema (tags, title, description, image, link)
            VALUES ('$tags', '$title', '$description',               
   '$image', '$link')";
    $run = mysqli_query ($dbc, $insert);                        
    if($run) {
        echo 'success';
    }
    else {
       echo 'failed';
    }       
}

关于您的代码未插入所有数据,您插入的数据可能包含重复ID,这是一个主键,因此特定的插入语句失败。

假设:- 您正在执行循环 10 次(10 行(,那么有可能在

10 行中有 3 行包含重复的id(主键(,因此 3 个插入语句没有被执行。