我无法使用mysql pdo将默认值为null的可空字段设置为null.我可以使用直接sql来做到这一点.
我试过:(主要来自这个问题如何使用PDO插入NULL值?)
Null Int
bindValue(':param', null, PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)Null Null
bindValue(':param', null, PDO::PARAM_NULL);
Run Code Online (Sandbox Code Playgroud)'Null',Int
bindValue(':param', 'NULL', PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)'Null',Null
bindValue(':param', 'NULL', PDO::PARAM_NULL);
Run Code Online (Sandbox Code Playgroud)空值
bindValue(':param', null);
Run Code Online (Sandbox Code Playgroud)'空值'
bindValue(':param', 'NULL');
Run Code Online (Sandbox Code Playgroud)以及bindParam具有绑定值的变量的5和6 的对应物.
PDO中的所有内容都会将值设置为0.
PHP版本: PHP 5.3.2-1ubuntu4.10
MYSQL服务器版本: 5.1.63-0ubuntu0.10.04.1
编辑 列信息的屏幕截图

以下适用于我:
<?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();
Run Code Online (Sandbox Code Playgroud)
传入PHP null,类型为PDO::PARAM_NULL.此外,请确保您的准备模拟设置为false.这可能有所帮助.
| 归档时间: |
|
| 查看次数: |
9698 次 |
| 最近记录: |