2011-12-28 57 views
0

我需要插入一個空白(foo="")到我的數據庫,但是當我做:準備綁定一個空值(不是空值)

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

,並期待在表中,bar = bang,但foo爲空。我希望它是(空白,不是空格)而不是null

(我需要這樣做,因爲該數據將被導出到SPSS和空白是SPSS的null

我看着直通php.net/…/pdo.constants和手動的休息,我只看到的空白越來越實例由於在第三次藍月亮的日食期間維納斯奇怪的對齊而插入。

編輯:PHP 5.3,MySQL 5.1中(我不知道該驅動程序版本)

+0

如何讓你的列'NOT NULL'? – deceze 2011-12-28 23:42:03

+0

簡短的回答是我有時需要一列爲NULL。 – jacob 2011-12-28 23:44:17

回答

0

PDO應插入空字符串(直接檢查你的數據庫,以確認這一點)。但是,我認爲PDO將強制空字符串爲空,當獲取數據時,除非您不告訴它。

試試這個在您的PDO手柄:

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

我確實直視了我的Db /表格,它說NULL。我正在插入/更新_not fetching_。你的建議是否仍然適用? – jacob 2011-12-29 17:55:14

+0

它可能仍然值得一試。在你的問題中提及你的PHP,DB和DB驅動版本也可能會有所幫助。 – cdhowie 2012-01-06 18:08:12

+0

php 5.3,mysql 5.1,我不知道驅動程序版本 – jacob 2012-01-06 18:46:24

0

你嘗試過使用bindvalue?

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

嘗試過'bindValue',但它仍然顯示爲空:/ – jacob 2011-12-29 19:21:00

+0

你沒有使用'PDO :: NULL_EMPTY_STRING'是你嗎? – 2011-12-29 19:28:16