php - 在 PHP 中将一行的 MySQL 值设置为默认值

标签 php mysql mysqli default

所以我有一个 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 列的列的默认值,以及 int 和 double 列的 0

这个问题是PHP引起的,还是MySQL引起的?

注意:一些不需要的字段可以为空,有些则不能。那些不可为空的具有设置的默认值。 int 和 double 字段的设置默认值为 1,其余可为空。

最佳答案

您不能只在数据库结构中设置默认值吗?您可以在下面看到一个示例;

CREATE TABLE example_table
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Address varchar(255), DEFAULT 'unrequired'
City varchar(255) DEFAULT 'Unrequired'
)

当您像这样创建表格时,您就可以开始了。您还可以更改表格

ALTER TABLE example_table
ALTER City SET DEFAULT 'Unrequired'

关于php - 在 PHP 中将一行的 MySQL 值设置为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37908066/

相关文章:

php - 确保返回的行数最少

php - Mysqli 准备语句 stmt_num_rows 返回 0

php - 正则表达式仅从文本中提取 IPv4 地址

PHP 获取 Pdf 文件属性中的高度和宽度

PHP 除图像和 DOCX 之外的所有文件在下载时均已损坏

php - 获取 mySQL 数据库列中所有值的 sum()

php - 从多个表中检索内容..可以吗?

php - 使用 $http.get 从 sql 数据库检索数据

PHP 执行中断,没有任何通知

PHP mysqli 为带有 out 参数的存储过程准备语句