所有的PHP代码如下。
该脚本可以正常工作,直到插入影院数据库表部分。我已经回应了 每个变量的内容都通过循环运行,以确保它们具有全部 他们内部的正确数据。但由于某些原因,某些数据未插入到数据库中,即使它包含在insert语句之前的变量中。共有18个循环,但只有12行数据被插入到数据库中。我想也许它的一个插入语句的数据太多,所以尝试将其限制为十,然后我计划使用from id desc查询选择其余的,但是前10个只插入7个告诉我它必须是insert语句,不是数据库表。我找了一个理由,尝试了很多不同的东西,但仍然没有快乐。这对我来说实际上是最后的手段,因为我非常喜欢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';
}
答案 0 :(得分:1)
在insert语句中使用LOW PRIORITY关键字可以避免数据较大时的冗余。
INSERT LOW PRIORITY INTO cinema('a','b','c') VALUES('x','y','c')
答案 1 :(得分:0)
关于不插入所有数据的代码,您插入的数据可能包含重复的ID
,这是主键,因此特定的插入语句失败。
假设: - 您正在执行循环10次(10行),那么10行3行中可能包含重复的id
(主键),因此3个插入语句不会被执行。
答案 2 :(得分: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';
}
}