【问题标题】:Return a boolean value from MySQL for using it in function as parameter从 MySQL 返回一个布尔值,以便在函数中用作参数
【发布时间】:2012-04-04 09:31:37
【问题描述】:

我正在构建一个简单的用户注册和信息更新表单,其中包含很多带有 CodeIgniter 的复选框。我将复选框的值存储为1(如果选中)和0(如果未选中)在tinyint(1) 字段下的MySQL 数据库中。 所以在用户更新表单中,我必须设置从这些 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 的第三个布尔参数?

我也查看了相关问题,但一无所获。任何帮助,将不胜感激。提前致谢。

【问题讨论】:

    标签: php mysql codeigniter checkbox boolean


    【解决方案1】:

    转换为布尔值

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

    【讨论】:

      【解决方案2】:

      另一个使用 C++ 风格 if/else 的选项

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

      【讨论】:

        【解决方案3】:

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

        http://codepad.org/Y7W0WWau

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

        【讨论】:

        • like 标记显示您对结果进行类型转换,或尝试将 db 字段类型设置为布尔值
        • 是的,这是最干净的解决方案。
        【解决方案4】:
        <?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); ?> 
        

        您可以使用上述之一...

        【讨论】:

          猜你喜欢
          • 2021-02-16
          • 2013-03-11
          • 1970-01-01
          • 2013-03-18
          • 2017-06-07
          • 2011-07-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多