PHP mysql PDO refuses to set NULL value

后端 未结 2 1811
無奈伤痛
無奈伤痛 2020-12-30 07:08

I am unable to set a nullable field with a default value of null to null using mysql pdo. I can do it using straight sql.

I have tried: (mostly from this question Ho

相关标签:
2条回答
  • 2020-12-30 07:14

    I will strong recommend to first assign all parameters to variables and then pass those variables to the bindParam() method.

    You can assign by passing NULL to those variables and it will work fine.

    $myVar = NULL;
    $conn->bindParam(':param1' , $myVar , PDO::PARAM_STR);
    

    All the way from Pakistan :)

    0 讨论(0)
  • 2020-12-30 07:23

    The following works for me:

    <?php
    
    $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "pass");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    
    $stmt = $pdo->prepare("INSERT INTO `null_test` (`can_be_null`) VALUES (:null)");
    $stmt->bindValue(":null", null, PDO::PARAM_NULL);
    
    $stmt->execute();
    

    Pass in PHP's null, with type of PDO::PARAM_NULL. Also, make sure your prepare emulation is set to false. That might help.

    0 讨论(0)
提交回复
热议问题