MySQLi bind_param仅在填写了所有字段时才有效

时间:2012-10-19 17:39:16

标签: php insert mysqli

我创建了一个PHP站点,它使用具有基本功能的MySQLi将HTML5表单提交到我的数据库中。问题是如果所有字段都已完成,它只会插入数据库。我该如何制作它以便我可以将某些字段留空,但让其余部分正常工作?

//connection statements above

$first=$_POST['first'];
$last=$_POST['last'];
$signed=$_POST['signed'];
$cardnumb=$_POST['cardnumb'];
$perm=$_POST['permcard'];

$stmt = $mysqli->prepare("INSERT INTO information (first_name, last_name, signed, number, permanent) VALUES (?,?,?,?,?)");

$stmt->bind_param("sssss", $first, $last, $signed, $cardnumb, $perm);
$stmt->execute();
$stmt->close();

为了清楚起见,如果填写了所有字段,此代码可以正常工作。如果字段留空,它不起作用。

有没有办法让这个工作用空字段?

1 个答案:

答案 0 :(得分:1)

如果您没有填写该字段,$_POST['varname'];会返回null还是空字符串?

如果它是一个空字符串,这仍然可以正常工作。

如果它是null,那么只要字段在数据库中被允许为null,它就应该有效。

检查您的表方案,并确保允许字段为null