【发布时间】:2017-11-20 21:29:40
【问题描述】:
我为制药产品制作了一个表格,用户选择制造商名称并写下项目的详细信息。除了这个问题,一切都正常运行。已经好几个小时了,我想不通。
问题是它只选择第一行并忽略新条目。我想要的是它将选择每一行或每个新条目并插入到第二个数据库中,代码工作没有错误,但只更新第一行。
//Select Everything from database
$perm = "SELECT * FROM test";
$result34 = mysqli_query($dbc, $perm);
if ($perm) {
//How many rows
$count = mysqli_num_rows($result34);
//Retrieve data
if($count>=1) {
$rows = mysqli_fetch_array($result34);
$namex= $rows['name'];
$categoryx = $rows['category'];
//takeout the spaces and strip tags
$namey = strip_tags($namex);
$category = str_replace(' ', '', $category);
//INSERT INTO TABLES
$sql34 = "INSERT INTO final1 (Name, Category) VALUES ($namey, $category);";
$result55 = mysqli_query($dbc, $sql34);
}
}
使用准备好的语句:
$sql2 = "INSERT INTO final1 (Name, Category) VALUES (?, ?);";
$stmt1 = mysqli_stmt_init($dbc);
if (!mysqli_stmt_prepare($stmt1, $sql2)) {
echo "SQL error";
} else {
mysqli_stmt_bind_param($stmt1, "ss", $namey, $category);
mysqli_stmt_execute($stmt1);
}
【问题讨论】:
-
你应该循环调用
mysqli_fetch_array。查看the manual中的用户注释 -
您的意思是使用 while 循环 ..right .? 获取数组
-
为什么不使用
INSERT INTO final1 (Name, Category) SELECT name, category FROM test,让数据库处理副本。 -
我不想只是将数据从一个表复制到另一个我想先验证数据然后将数据移动到第二个数据库。
-
它可能会从您的表中选择所有记录,但由于您只调用 mysqli_fetch_array() 一次,因此您只会看到第一个结果。