所有的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 行中有 3 行包含重复的id
(主键(,因此 3 个插入语句没有被执行。