2011-07-26 149 views
0

我在調用一個帶有布爾參數的存儲過程。在我的代碼中,真正的值很容易作爲1傳遞,但錯誤值顯示爲空白。但是,我的var_dump顯示我的值實際上是錯誤的。在var_dump中傳遞顯示爲空白的虛假值

$form[$i]['photo_op'] = isset($_POST['photo_op'][$array_i]) ? $_POST['photo_op'][$array_i] : false; 

我的$ _ POST的var_dump看起來像:

["photo_op"]=> bool(false) ["gala"]=> bool(true) ["chairman"]=> bool(false) 

當我打印出我的價值觀,這似乎是傳遞空字符串爲我的「photo_op」和「董事長」字段:

foreach($form as $f){ 
    print "Photo OP: " . $f['photo_op'] . " | Gala: " . $f['gala'] . " | Chair: " . $f['chair']; 
} 

我的輸出如下: 圖片OP:| Gala:1 |主持人:

我的目標是虛假的值傳遞到存儲過程:

$final = insertAttendeeInfo($ind_id, $f['photo_op']); 

存儲過程看起來類似:

function insertAttendeeInfo($ind_id, $photo){ 
    $insert = dbStoredProc('sp_remove_attendee_information', $ind_id, $photo); 
    return; 
} 

任何想法?

預先感謝您。

+0

那麼,你把'false'放進值中並'打印'它。顯然有空的字符串。有什麼問題? – zerkms

+1

您忘記提及您的數據庫系統以及您的實際數據庫調用的樣子。 – Tomalak

+0

你想看什麼?空白的'0'如果是,在輸出它們時在每個變量前設置(int):(int)$ f ['photo_op'] – silex

回答

0

當您使用print函數打印變量(或將某個變量連接到字符串時),其值會轉換爲字符串。布爾型false被轉換爲空字符串。如果您想查看變量的真實值,請使用var_dumpvar_export而不是print

+0

這很有道理Sander。但是,如果我將一個錯誤值傳遞給存儲過程,是否存在傳遞錯誤值的適當方式? – etm124

+0

您的數據庫層應該知道將PHP布爾變換爲SQL等效項。你使用的是什麼數據庫(MySQL?)和什麼訪問層(mysqli?PDO?Doctrine?)? –