Php 使用MySQLi插入NULL而不是空值
我有一个带有一些可选字段的表单。在数据库中,这些字段设置为接受NULL。 如果某个字段为空,下面的代码将抛出错误。你能不能帮我找出避免这种情况的最佳方法?我想到的唯一解决方案是将变量设置为“”if is empty()Php 使用MySQLi插入NULL而不是空值,php,mysqli,null,Php,Mysqli,Null,我有一个带有一些可选字段的表单。在数据库中,这些字段设置为接受NULL。 如果某个字段为空,下面的代码将抛出错误。你能不能帮我找出避免这种情况的最佳方法?我想到的唯一解决方案是将变量设置为“”if is empty() 我建议在定义参数之前检查$\u POST参数,以便如果变量不是空的,则设置值,否则设置为空 if(!empty($_POST['dateRequest'])) { $dateRequest = $_POST['dateRequest']; } else { $dateReques
我建议在定义参数之前检查
$\u POST
参数,以便如果变量不是空的,则设置值
,否则设置为空
if(!empty($_POST['dateRequest'])) { $dateRequest = $_POST['dateRequest']; } else { $dateRequest = NULL; }
if(!empty($_POST['firstName'])) { $firstName = $_POST['firstName']; } else { $firstName = NULL; }
if(!empty($_POST['lastName'])) { $lastName = $_POST['lastName']; } else { $lastName = NULL; }
if(!empty($_POST['lastName'])) { $note = $_POST['note']; } else { $note = NULL; }
这将阻止您在查询中传递空参数。由于PHP7,您可以使用elvis运算符设置变量的默认值
$dateRequest = $_POST['dateRequest'] ?: null;
$firstName = $_POST['firstName'] ?: null;
$lastName = $_POST['lastName'] ?: null;
$note = $_POST['note'] ?: null;
如果任何字段为空或未定义,它会将该值设置为NULL,并将其插入数据库
作为旁注,您应该阅读而不是手动打印错误消息
$dateRequest = $_POST['dateRequest'] ?: null;
$firstName = $_POST['firstName'] ?: null;
$lastName = $_POST['lastName'] ?: null;
$note = $_POST['note'] ?: null;