【发布时间】:2016-10-20 20:32:24
【问题描述】:
所以我有一个 PHP 表单来向数据库添加一行。如果任何非必填字段为空,则应使用该字段的默认值。
我试着用 MySQLi 来实现这个:
$required = $_POST["required"];
$unrequired = isset($_POST["unrequired"])?$_POST["unrequired"]:"DEFAULT(`Unrequired`)";
$sql = $mysqli->prepare("INSERT INTO `table` (`Required`,`Unrequired`) VALUES (?,?)");
$sql->bind_param("is",$required,$unrequired);
$sql->execute();
但是当我尝试使用 SELECT unrequired FROM table WHERE required = 33 获取非必需字段的值时,我得到 DEFAULT(`Unrequired`) 而不是 varchar 列的默认值,并且 0 用于 int 和 double 列。
这个问题是 PHP 还是 MySQL 引起的?
注意:有些不需要的字段可以为空,有些则不能。那些不可为空的有一个设置的默认值。 int 和 double 字段的设置默认值为 1,其余为空。
【问题讨论】:
-
它是什么默认值(
Unrequired)?它应该返回 DEFAULT(Unrequired) 并将插入到您的表中。您可以设置默认值而不是 DEFAULT(Unrequired)。