繁体   English   中英

在PHP中处理Tinyint

[英]Handling Tinyint in php

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

您很有可能会将复选框的checked值传递到数据中。 复选框不使用true / false,而是"checked"或为空。 您可以执行以下操作:

$value = ($checked == "checked" ? 1 : 0)

您正在此处将字符串转换为整数。 当您在PHP中执行此操作时,结果很可能是0( 请参阅this )。 我不确定MySQL,但我怀疑它以大致相似的方式处理操作。

我想说,处理此问题的方法是定义您的复选框,如下所示:

<input name="mycheckbox" type="checkbox" value="1" />

然后,在PHP中,像下面这样获取插入到数据库中的值:

$myCheckBoxIsChecked = (!empty($_POST['mycheckbox'])) ? 1 : 0;

然后,您可以直接在查询中使用$myCheckBoxIsChecked ,而无需进行卫生处理-因为您知道它只能具有10的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM