从MySQL返回一个布尔值,以便在函数中使用它作为参数

时间:2012-03-19 21:05:39

标签: php mysql codeigniter checkbox boolean

我正在构建一个简单的用户注册和信息更新表单,其中包含许多CodeIgniter复选框。我在1字段下的MySQL数据库中将复选框的值存储为0(如果已选中)和tinyint(1)(如果未选中)。 所以在用户更新表单中,我必须设置从这些MySQL字段返回的默认值。另一方面,如果未传递表单验证,则数据不应丢失。因此,我需要使用CI的set_checkbox函数和第三个参数,如下所示:

<input type="checkbox" name="my_field" value="1" <?php echo set_checkbox('my_field', '1', $returned_boolean_value); ?> >

但它不起作用,因为我的MySQL查询不返回变量$returned_boolean_value的布尔值。它将01作为字符串返回。 所以PHP查询就像这样:

set_checkbox('my_field', '1', '1');

但必须是这样的:

set_checkbox('my_field', '1', TRUE);

我的问题是如何使用从数据库返回的数据设置set_checkbox的第三个布尔参数?

我也看了相关问题,但没有发现任何相关问题。任何帮助,将不胜感激。提前谢谢。

4 个答案:

答案 0 :(得分:3)

转换为布尔值

<?php echo set_checkbox('my_field', '1', (boolean) $returned_boolean_value); ?> 

答案 1 :(得分:1)

使用C ++样式的另一个选项if / else

set_checkbox('my_field', '1', $returned_boolean_value ? TRUE : FALSE);

答案 2 :(得分:0)

您可以使用旧的双重否定或字符串比较

http://codepad.org/Y7W0WWau

set_checkbox('my_field', '1', !! $string_0_or_1 );
set_checkbox('my_field', '1', $string_0_or_1 == '1' );

答案 3 :(得分:0)

<?php echo set_checkbox('my_field', '1', (int) $returned_boolean_value); ?> 
<?php echo set_checkbox('my_field', '1', intval($returned_boolean_value)); ?> 
<?php echo set_checkbox('my_field', '1', (bool)$returned_boolean_value); ?> 
<?php echo set_checkbox('my_field', '1', $returned_boolean_value=='1'?true:false); ?> 

您可以使用以上其中一种......