如何在PHP中插入NULL值

时间:2014-04-07 08:24:17

标签: php mysql

我想在数据库中插入NULL值

$managerId = $_POST['managerId'];

if($managerId == 0)
{
    $managerId = NULL;
}
else
{
    $managerId = 14;
}
$mysql_user_resultset = mysqli_query($con, "INSERT into user (managerId) VALUES ('$managerId')");

我这样用。它不起作用,价值不会插入。

如何在Same变量中插入Null值和一些值..

因为' $ managerId' - 单引号。

如何定义两种类型

3 个答案:

答案 0 :(得分:1)

当您连接$ managerId变量时,您将获得此查询字符串:

"INSERT into user (managerId) VALUES ('')"

所以,你试图插入一个空字符串。这不是你想要的。最简单的方法是删除引号,例如

"INSERT into user (managerId) VALUES ($managerId)"

如果您的managerId字段可以为null,并且仍然对整数值有效,则此方法有效。

答案 1 :(得分:1)

PHP将null值连接为空字符串。所以,为了让它工作,试试这个:

if($managerId == 0)
{
    $managerIdInQuery = 'NULL';
}
else
{
    $managerIdInQuery = 14;
}
$mysql_user_resultset = mysqli_query($con, "INSERT into user (managerId) VALUES ($managerIdInQuery)");

答案 2 :(得分:0)

  1. 将列默认值设置为NULL
  2. 试试这一行:

    $managerId = (int) $managerId; // Convert to INT to avoid SQL injection $mysql_user_resultset = mysqli_query($con, "INSERT into user (managerId) VALUES (".($managerId?$managerId:'DEFAULT').")");

  3. 如果设置了$ managerId,将插入$ managerId,否则默认值为NULL。