Php 选择在NAS而不是服务器上工作的数据库中的位值
我有一些带有yes/no(值1/0)的组合框,我将它们作为一个位存储在数据库中。要将该值放入对象的正确成员中,我执行以下操作:Php 选择在NAS而不是服务器上工作的数据库中的位值,php,mysql,class,object,bit,Php,Mysql,Class,Object,Bit,我有一些带有yes/no(值1/0)的组合框,我将它们作为一个位存储在数据库中。要将该值放入对象的正确成员中,我执行以下操作: class Member { var $active; public function refreshData() { $mysqli = connectdbMySQLI(); $query = "SELECT * FROM tblMember WHERE ID = " . $this->id;
class Member {
var $active;
public function refreshData() {
$mysqli = connectdbMySQLI();
$query = "SELECT * FROM tblMember WHERE ID = " . $this->id;
$result = $mysqli->query($query);
$row = $result->fetch_array(MYSQLI_ASSOC);
$this->setData($row);
$mysqli->close();
}
public function setData($row) {
$this->active = $row['active'];
}
}
Alle varchars、int和text值或被赋值,但这些位值除外。
我检查了var_dump,得到了一个空字符串
["active"]=> string(1) ""
保存也不起作用:
$member = new Member(isset($_POST['id']) ? $_POST['id'] : null );
if(isset($_POST['active'])) {
$member->active = $_POST['active'];
$member->save();
}
我使用此选项在组合框中选择正确的值:
<select type="text" name="active" id="active" class="txt">
<option value="0" <?php echo $member->active == 0 ? 'selected="selected"' : ''; ?>>No</option>
<option value="1" <?php echo $member->active == 1 ? 'selected="selected"' : ''; ?>>Yes</option>
</select>**
这(所有结果均为0):
编辑2:
刚刚尝试了一个简单的查询(没有mysqli),我得到了所有位字段的一个空结果
if(isset($_POST['active']))
您需要将其替换为以下内容
if(!$_POST['active']) {
$_POST['active'] = 0;
}else{
$_POST['active'] = 1;
}
或解决方案2
在下拉列表中更新以下值
<select type="text" name="active" id="active" class="txt">
<option value="1" <?php echo $member->active == 1 ? 'selected="selected"' : ''; ?>>No</option>
<option value="2" <?php echo $member->active == 2 ? 'selected="selected"' : ''; ?>>Yes</option>
</select>**
>没有
>对
**
它不会绕过您的if条件 所以存储为int而不是bit。Thx,但是为什么我不能检索存储的值呢?(见编辑)
if(!$_POST['active']) {
$_POST['active'] = 0;
}else{
$_POST['active'] = 1;
}
<select type="text" name="active" id="active" class="txt">
<option value="1" <?php echo $member->active == 1 ? 'selected="selected"' : ''; ?>>No</option>
<option value="2" <?php echo $member->active == 2 ? 'selected="selected"' : ''; ?>>Yes</option>
</select>**