php - 如何将实际的 NULL 值插入到可为空的列中?

标签 php mysql null

function save($gmt, $name, $address, $phone, $remark)
{
    $query= "INSERT INTO `user` (`gmt`, `name`, `address`, `phone`, `remark`) VALUES ('$gmt', '$name', '$address', '$phone', '$remark')";
    mysql_query($query);
}

这里地址、电话、备注可以为NULL。每当变量设置为 NULL 并且该列可为空时,我都需要它来保存 NULL,而不是插入空字符串。

如何使用 PHP 将 NULL 值插入到数据库中?

最佳答案

这是 PHP 解决方案,但您必须使用 mysqli,因为 mysql 已弃用,请阅读更多关于 mysqli 的信息. 此外,您必须考虑 SQL injection

function save($gmt, $name, $address, $phone, $remark)
{
  if(empty($phone)){
   $phone = 'NULL';
  }else{
   $phone = "'".$phone."'";
  }
  if(empty($remark)){
   $remark = 'NULL';
  }else{
   $remark = "'".$remark."'";
  }
    $query= "INSERT INTO `user` (`gmt`, `name`, `address`, `phone`, `remark`) VALUES ('$gmt', '$name', '$address', $phone, $remark)";
    mysql_query($query);
}
//tests
save("a", "b", "c", "", "")."<br>";
save("a", "b", "c", "d", "")."<br>";
save("a", "b", "c", "d", "e")."<br>";
/*
INSERT INTO `user` (`gmt`, `name`, `address`, `phone`, `remark`) VALUES ('a', 'b', 'c', NULL, NULL)
INSERT INTO `user` (`gmt`, `name`, `address`, `phone`, `remark`) VALUES ('a', 'b', 'c', 'd', NULL)
INSERT INTO `user` (`gmt`, `name`, `address`, `phone`, `remark`) VALUES ('a', 'b', 'c', 'd', 'e')
*/
?>

DEMO

关于php - 如何将实际的 NULL 值插入到可为空的列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600650/

相关文章:

php - Javascript 中是否有 var_dump (PHP) 的等价物?

php - 对 "data output stream"使用 php yield/Generator::send()

mysql - 防止重复条目自动递增

mysql - 我可以使用子查询代替什么来搜索 MAX()?

c - 节点、类型定义、Null 的工作原理(C 编程语言)C 链表

php - 在 PHP 中使变量成为全局变量?

php - 如何使用 jQuery/AJAX 在主窗体中提交 iframe 子窗体?

mysql - 如何从 MySql 中旋转表

sql - SQL QUERY用先前已知值中的值替换行中的NULL值

c# - 将一个列表添加到另一个为空或不为空的列表