未处理的异常。 SQLSTATE [23000]:完整性约束违规:1048列' idComplejo'不能为空

时间:2016-06-15 02:53:57

标签: php mysql pdo

当我打开它时,我有这个错误:

  

未处理的例外。   SQLSTATE [23000]:完整性约束违规:1048列' idComplejo'不能为空

这是我的php:

<?php 

require("Db.class.php");


$db = new Db();

$response = array();


 $idComplejo= $_POST['idComplejo'];
 $idUsuario= $_POST['idUsuario'];


$result = $db->query("INSERT INTO baneo(idComplejo, idUsuario)   VALUES(:idComplejo, :idUsuario)",
    array("idComplejo" => $idComplejo, "idUsuario" => $idUsuario));

if($result == 0) { 
    $response["success"] = 0;
    $response["mensaje"] = "Error";
}

else if($result > 0){
    $response["success"] = 1;
    $response["mensaje"] = "Success";
}

echo json_encode($response);
?>

显然,如果我只是打开php,变量是NULL。但是如果有人打开这个php我想显示这个错误:

 $response["success"] = 0;
 $response["mensaje"] = "Error";

原因是因为我想保护我的文件,而我不想显示我的数据库的样子。

由于

1 个答案:

答案 0 :(得分:1)

代码需要一些重组。在尝试插入之前确保您有值,如上所述

  <?php 

        require("Db.class.php");
        $db = new Db();
        $response = array();

        if(!empty($_POST['idComplejo']) && !empty($_POST['idUsuario'])){
              $idComplejo= $_POST['idComplejo'];
              $idUsuario= $_POST['idUsuario'];
        }else{
             $response["success"] = 0;
             $response["mensaje"] = "Error";
        }

        if(!isset($response["mensaje"])){
              //Required data is here
              $result = $db->query("INSERT INTO baneo(idComplejo, idUsuario)   VALUES(:idComplejo, :idUsuario)",array("idComplejo" => $idComplejo, "idUsuario" => $idUsuario));
       }


      if($result) { 
            $response["success"] = 1;
            $response["mensaje"] = "Success";
      }

      echo json_encode($response);

&GT;