Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用MySQLi插入NULL而不是空值_Php_Mysqli_Null - Fatal编程技术网

Php 使用MySQLi插入NULL而不是空值

Php 使用MySQLi插入NULL而不是空值,php,mysqli,null,Php,Mysqli,Null,我有一个带有一些可选字段的表单。在数据库中,这些字段设置为接受NULL。 如果某个字段为空,下面的代码将抛出错误。你能不能帮我找出避免这种情况的最佳方法?我想到的唯一解决方案是将变量设置为“”if is empty() 我建议在定义参数之前检查$\u POST参数,以便如果变量不是空的,则设置值,否则设置为空 if(!empty($_POST['dateRequest'])) { $dateRequest = $_POST['dateRequest']; } else { $dateReques

我有一个带有一些可选字段的表单。在数据库中,这些字段设置为接受NULL。 如果某个字段为空,下面的代码将抛出错误。你能不能帮我找出避免这种情况的最佳方法?我想到的唯一解决方案是将变量设置为“”if is empty()


我建议在定义参数之前检查
$\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;