Home > Blockchain >  SQLSTATE[22007]: Invalid datetime forma
SQLSTATE[22007]: Invalid datetime forma

Time:05-12

I try to save some data that it brings me from my view, which is a table, but I don't know why it throws me that error with the insert. result of insert

this is my view: table of view

this is my controller:

    $checked_array = $_POST['id_version'];


    foreach ($request['id_version'] as $key => $value) {
        if (in_array($request['id_version'][$key], $checked_array)) 
        {

            $soft_instal = new Software_instalacion;
            $soft_instal->id_instalacion             = $instalaciones->id;
            $soft_instal->id_historial               = $historial->id;
            $soft_instal->id_usuario                 = $request->id_usuario;
            $soft_instal->id_version                 = $_POST['id_version'][$key];
            $soft_instal->obs_software               = $_POST['obs_software'][$key];
            $soft_instal->id_tipo_venta              = $_POST['id_tipo_venta'][$key];
            $soft_instal->save();
        }
    }

CodePudding user response:

id_tipo_venta seems to be an empty string which is apparently not valid.

You can try debugging what you get in :

var_dump($_POST['id_tipo_venta'][$key]);
die;

Your database field expects to receive an integer. Therefore, using the intval() function can solve your problem.

Indeed, I think your code returns an alphanumeric string.

Therefore, the code below will return 0 in all cases if no version is returned (not set, string or simply null):

$soft_instal->id_tipo_venta = intval($_POST['id_tipo_venta'][$key]);

On the other hand, intval() will always convert to int, so a decimal will be converted, example :

intval("1.1") // returns 1
intval("v1.1") // returns 0

If this is not the desired behavior, maybe you should think about changing your database type.

EDIT : Of course, you can also set the value as null if you prefer to 0. You must allow nullable values in your database.

CodePudding user response:

id_tipo_venta can not be empty, try with some number or change type colummn to varchar in the DB

  • Related