我有三列要使用php插入数据。代码将运行三次。
我希望第一次运行代码时只在column1上插入,而将其他列保留为空。
如果第二次运行以仅插入到column2中,而将其他列留空
诸若此类。我已经尝试了下面的代码,但不能让它工作。它只插入到column1中
<?php
error_reporting(0);
include('db.php');
$result = $db->prepare('SELECT * FROM rec');
$result->execute(array());
while ($row = $result->fetch())
{
//$id = $row['id'];
$column1 = $row['column1'];
$column2 = $row['column2'];
$column3 = $row['column3'];
}
if ($column1 ==''){
echo 'empty';
$statement = $db->prepare('INSERT INTO rec(column1)
values(:column1)');
$statement->execute(array(':column1' =>'$column1'));
} elseif ($column2 ==''){
echo 'empty2';
$statement = $db->prepare('INSERT INTO rec (column2)
values(:column2)');
$statement->execute(array(':column2' =>'$column2'));
} elseif ($column3==''){
echo 'empty3';
$statement = $db->prepare('INSERT INTO rec(column3)
values(:column3)');
$statement->execute(array(':column3' =>'$column3'));
}
发布于 2018-07-22 01:39:48
您的if-else是这样的:没有正确插入正确的数据。使用下面的代码,它将以您的方式解决您的目的。然而,你遵循的方式是不正确的。您可以按照传统的方法创建数据库并向其中插入值,也可以对表使用动态字段并以另一种方式插入它。
if ($column1 ==''){
echo 'empty';
}
else{
$statement = $db->prepare('INSERT INTO rec(column1)
values(:column1)');
$statement->execute(array(':column1' =>'$column1'));
}
if ($column2 ==''){
echo 'empty2';
}
else{
$statement = $db->prepare('INSERT INTO rec (column2)
values(:column2)');
$statement->execute(array(':column2' =>'$column2'));
}
if ($column3==''){
echo 'empty3';
}
else{
$statement = $db->prepare('INSERT INTO rec(column3)
values(:column3)');
$statement->execute(array(':column3' =>'$column3'));
}
发布于 2018-07-22 00:50:42
首先,这不是设计数据库的正确方法。
其次,只使用if语句,而不是嵌套的if-else语句,它就会起作用!
https://stackoverflow.com/questions/51458153
复制相似问题