首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中处理Tinyint

在php中处理Tinyint
EN

Stack Overflow用户
提问于 2011-12-14 21:59:11
回答 2查看 3.2K关注 0票数 0

我使用PHP将数据从一个在线表单发布到一个数据库中,表单上的一些字段是复选框。我最初将复选框的数据类型定义为BIT,但在选中复选框并提交表单后,当我在数据库中查找时,这些值都是'b‘。然后,我将数据类型设置为BOOLEAN,它将自身切换为TINYINT。但是,在选中复选框/提交表单后,数据库中的值都是'0‘。我希望看到一个与选中的复选框相对应的“1”,但这并没有发生。我做错了什么?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-12-14 22:01:44

您很有可能将checkbox的checked值传递到数据中。复选框不使用true/false,而是使用"checked"或empty。你可以这样做:

代码语言:javascript
复制
$value = ($checked == "checked" ? 1 : 0)
票数 2
EN

Stack Overflow用户

发布于 2011-12-14 22:08:23

在这里的某个时刻,您正在将字符串转换为整数。当你在PHP中这样做的时候,结果很可能是0 (see this)。我对MySQL不太确定,但我怀疑它以大致类似的方式处理操作。

我想说的是,处理这个问题的方法是这样定义您的复选框:

代码语言:javascript
复制
<input name="mycheckbox" type="checkbox" value="1" />

然后,在PHP中,获取插入数据库的值,如下所示:

代码语言:javascript
复制
$myCheckBoxIsChecked = (!empty($_POST['mycheckbox'])) ? 1 : 0;

然后,您可以在查询中直接使用$myCheckBoxIsChecked,不需要任何消毒-因为您知道它的值只能是10

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8505687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档