准备绑定一个空白值(不是空值)


Prepare bind a blank value (not a null value)

我需要插入一个空白(foo="")到我的数据库,但是当我这样做:

bindParam(':foo','',PDO::PARAM_STR);
bindParam(':bar','bang',PDO::PARAM_STR);

看表,bar = bang,但foo为空。我希望它是(空白,不是空格)而不是null .

(我需要这样做,因为数据将导出到SPSS,空白是SPSS的CC_7)

我看过php.net/.../pdo.constants和手册的其余部分,我只看到空白被插入的例子,因为在第三个蓝月亮的日食期间金星的奇怪对齐。

编辑: php 5.3, mysql 5.1(和我不知道驱动程序版本)

PDO应该插入空字符串(直接检查数据库以确认这一点)。但是,我认为PDO将在获取数据时将空字符串强制为NULL,除非您告诉它不要这样做。

在你的PDO句柄上试试:

$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_NATURAL);

你试过使用bindvalue吗?

bindValue( ':foo', '', PDO::PARAM_STR );
bindValue( ':bar', 'bang', PDO::PARAM_STR );