PHP上的If语句(插入数据)

PHP上的If语句(插入数据),php,mysql,session,Php,Mysql,Session,我必须在数据库中注册客户和/或经理。我只有一张表格,唯一的区别是经理的有效身份证号码。客户应将此表留空。我只是想用if语句保存数据,如果它是空的,则将信息保存在客户表中。如果不是,则保存在管理器中。我没有在我的课堂上看到这一点,所以我不确定这是否可能 是否可以使用if语句插入数据?我的意思是,我有两个不同的表,但只有一个表,其中一个表将决定保存哪个表的数据 manager表中的数据是正常的,但当我尝试将数据插入客户机时,它不起作用。我不确定我能用这个 if($_SESSION['id'] !=

我必须在数据库中注册客户和/或经理。我只有一张表格,唯一的区别是经理的有效身份证号码。客户应将此表留空。我只是想用if语句保存数据,如果它是空的,则将信息保存在客户表中。如果不是,则保存在管理器中。我没有在我的课堂上看到这一点,所以我不确定这是否可能

是否可以使用if语句插入数据?我的意思是,我有两个不同的表,但只有一个表,其中一个表将决定保存哪个表的数据

manager表中的数据是正常的,但当我尝试将数据插入客户机时,它不起作用。我不确定我能用这个

if($_SESSION['id'] != null){
  $sql = "INSERT INTO manager (id,magname,maglname,maguser,magpass) VALUES (?, ?, ?, ?, ?);";
  $sth = $DBH->prepare($sql);
  $sth->bindParam(1, $_SESSION['id'], PDO::PARAM_INT);
  $sth->bindParam(2, $_SESSION['firstname'], PDO::PARAM_INT);
  $sth->bindParam(3, $_SESSION['secondname'], PDO::PARAM_INT);
  $sth->bindParam(4, $_SESSION['username'], PDO::PARAM_INT);
  $sth->bindParam(5, $_SESSION['password'], PDO::PARAM_INT);
  $sth->execute();
}

if(empty($_SESSION['id']){
  $sql = "INSERT INTO costumer (fisrtname,lastname,username,password) VALUES (?, ?, ?, ?);";
  $sth = $DBH->prepare($sql);
  $sth->bindParam(1, $_SESSION['firstname'], PDO::PARAM_INT);
  $sth->bindParam(2, $_SESSION['lastname'], PDO::PARAM_INT);
  $sth->bindParam(3, $_SESSION['username'], PDO::PARAM_INT);
  $sth->bindParam(4, $_SESSION['password'], PDO::PARAM_INT);
  $sth->execute();
}

您可以通过以下代码直接执行此操作

   if(isset($_SESSION['id']))
            $sql = "INSERT INTO `manager`..."
   else
            $sql = "INSERT INTO `customer`..."
或者类似的事情

   if(!empty($_SESSION['id']))
          {  $sql = "INSERT INTO `manager`..."}
   else
          {  $sql = "INSERT INTO `customer`..."}

你面临的问题是什么?您的insert是否抛出错误或未插入任何内容?请改用isset和empty,和/或else{…}FYI:==null不只是检查变量是否为null,因为它是空的。它还会检查变量是否为FALSE、0、空数组或空字符串。实际上,它不会产生任何错误,只是在会话['id']为空时,它不会保存到我的数据库中。您应该向我们显示完整的或更多的代码。另外,确保您的列允许空值。另外,您确实启动了会话,并且在所有页面中使用会话?