我正在使用WordPress数据库接口插入一些可以为空的行值。
功能:
$wpdb->insert( $table, $data, $format );
在$ data参数中获取一组值。如果我从$ data数组中排除某些字段值,则表中的字段显示为null。但是,我希望能够使用所有字段的值填充$ data数组,但在需要时将这些值设为null。但是,如果我传递的值= NULL
,则数据库值不为空,而是空白。我该怎么办?
答案 0 :(得分:2)
查看wpdb源代码,“insert”方法最终被映射到SQL,将每个字段值放在单引号之间(第1233行):
$sql = "{$type} INTO `$table` (`" . implode( '`,`', $fields ) . "`)
VALUES ('" . implode( "','", $formatted_fields ) . "')";
要插入一个真正的NULL,您需要将一个未加修饰的NULL单词放入该表达式中,并且不允许这样做。所以插入的是4个字母的字符串“NULL”。
请注意,此方法会让用户插入正确的数据类型,并依赖于MySQL自动转换引用的数据类型。将数值转换为实数数值。
答案 1 :(得分:1)