1

所有的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';
}   
4

3 回答 3

1

当数据很大时,在插入语句中使用 LOW PRIORITY 关键字来避免冗余。

INSERT LOW PRIORITY INTO cinema('a','b','c') VALUES('x','y','c')
于 2014-11-04T17:20:25.180 回答
0

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

假设:-您正在执行循环 10 次(10 行),那么 10 行中的 3 行可能包含重复项id(主键),因此 3 个插入语句没有被执行。

于 2013-07-20T14:55:14.010 回答
0

尝试这个:

$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';
    }       
}
于 2013-07-20T15:01:21.680 回答