Php 查询未将空数据作为空数据插入数据库(MAMP)

Php 查询未将空数据作为空数据插入数据库(MAMP),php,mysql,mamp,Php,Mysql,Mamp,我在其他网站上看到,本地服务器的php.ini是以不同的方式配置的。但是,我相信通过手动填写其余的列,它应该能够插入数据。它甚至没有给我任何提示。这是我的密码 $datos = array("nombre" => $_POST["nuevoNombre"], "usuario" => $_POST["nuevoUsuario"], "password" => $encriptar,

我在其他网站上看到,本地服务器的php.ini是以不同的方式配置的。但是,我相信通过手动填写其余的列,它应该能够插入数据。它甚至没有给我任何提示。这是我的密码

      $datos = array("nombre" => $_POST["nuevoNombre"],
                 "usuario" => $_POST["nuevoUsuario"],
                 "password" => $encriptar,
                 "rol" => $_POST["nuevoRol"]);

  $respuesta = ModeloUsuarios::mdlIngresarUsuario($datos);
  if ($respuesta == 'ok') {
    echo '<script>
      swal({
        type: "success",
        title: "Se ha creado un nuevo usuario",
        showConfirmButton: true,
        confirmButtonText: "Cerrar"
      }).then(function(result){
        if(result.value){
          window.location = "usuarios";
        }
      });
    </script>';
  } else {
    echo '<script>alert("asdf");</script>';
  }
} else {
  echo '<script>
    swal({
      type: "error",
      title: "Por favor llena los campos correctamente",
      showConfirmButton: true,
      confirmButtonText: "Cerrar"
    }).then(function(result){
      if(result.value){
        window.location = "usuarios";
      }
    });
  </script>';
}
}


可以尝试使用
->execute()

删除
bindParam
,并更改为:

$statement->execute(array(
    ':nombre' => $datos['nombre'],
    ':usuario' => $datos['usuario'],
    ':password' => $datos['password'],
    ':rol' => $datos['rol'],
    ':estado' => 0
));

我认为在非字符串上使用
PDO::PARAM_STR
是它失败的原因之一。另外,我注意到
ultimo\u login
在数据库中有一个默认值,因此从insert sql中删除并从execute数组中删除,它将自动正确插入日期戳。

您的问题是
查询不将空数据作为空数据插入数据库(MAMP)
但您没有提及要插入的数据及其在数据库中的外观-不将空插入为空是什么意思?我的观点是:由于我没有将字段“estado”和“ultimo_login”与POST变量一起添加,我正在尝试使用“0”手动插入它们,但无法插入。该列的数据类型是什么?请尝试以下操作:
$statement->bindParam(“:estado”,0,PDO::PARAM_STR”)-列的数据类型为INT-字符串将不被接受,对于另一个-它是DateTime字段-0在这里也不起作用
值(,
这是一个输入错误。工作得很好!你有ajax知识吗?我在尝试在应用程序中编辑这些值时也遇到了问题。@OscarParedez有点粗放,但发布一个单独的问题,我会注意:)有skype吗?我只能每90分钟发布一次:P@OscarParedez(联合国)幸运的是,我没有用一个十英尺长的圆锥体触碰微软的产品:)问题贴出来了!
$statement->execute(array(
    ':nombre' => $datos['nombre'],
    ':usuario' => $datos['usuario'],
    ':password' => $datos['password'],
    ':rol' => $datos['rol'],
    ':estado' => 0
));