2011-07-26 152 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?)? –