如果某些字段包含数据,您如何将多行插入数据库?请考虑以下事项:
register_case = mysql_query ("INSERT INTO cases VALUES
('$case','$p_firstname','$p_lastname','$city'),
('$case','$p2_firstname','$p2_lastname','$city'),
('$case','$p3_firstname','$p3_lastname','$city')"
);
这会创建多个具有不同名字和姓氏的行,但大小写和城市保持不变。但是,如果只有一个条目,则仍然为另一个条目创建一行2.仅当给定字段中存在数据时,如何才能创建行?
答案 0 :(得分:0)
你可以尝试一下if例,它会做类似的事情:
if (isset($field)) do thisquery
或
if ($field != "") do thatquery
答案 1 :(得分:0)
我认为这会从表单中获取信息吗?
如果是这样,将输入命名为“name =”firstname []“”,这将导致它们在提交时被放置在数组中,如$ _POST ['firstname'] [0],所以如果你有3名为firstname []的输入然后你得到$ _POST ['firstname'] [0],$ _ POST ['firstname'] [1]和$ _POST ['firstname'] [2]。
然后做这样的事情:
$sql = 'INSERT INTO `cases` VALUES ';
for($i = 0;$i < count($_POST['firstname']);$i++)
{
$sql .= "('$case','".$_POST['firstname'][$i]."','".$_POST['lastname'][$i]."','$city')";
if($i != count($_POST['firstname']) - 1)
{
$sql .= ','; //Will insert a comma after each except the last. Count - 1 since $i will equal count - 1 on the last one, since it starts at 0 and not 1.
}
}
$register_case = mysql_query($sql);
我认为这应该有用。
或者你可以做一个foreach并在每一个上加一个','然后在完成时将它从字符串的右端修剪掉,或者做一个foreach并保留一个外部计数器,在结束后手动递增。第二个想法,这些都不会抓住姓氏,没有做$ key =&gt; $ value类型的东西,并且做$ _POST ['lastname'] [$ key]。可能还需要使用if。
检查空字符串当然,你永远不想直接将$ _POST或$ _GET值传递给SQL,先验证并确保没有注入。