php – 将数组提取到动态变量中
发布时间:2020-12-13 16:49:57 所属栏目:PHP教程 来源:网络整理
导读:我试图变得懒惰(或聪明):我有7个复选框,与 MySQL表中的7列相关联. 复选框发布在一个数组中: $can = $_POST['can']; 我创建了以下循环来转储MySQL插入的变量: for($i=1;$i8;$i++){ if($can[$i] == "on"){ ${"jto_can".$i} = 'Y'; } else{ ${"jto_can".$i}
我试图变得懒惰(或聪明):我有7个复选框,与
MySQL表中的7列相关联.
复选框发布在一个数组中: $can = $_POST['can']; 我创建了以下循环来转储MySQL插入的变量: for($i=1;$i<8;$i++){ if($can[$i] == "on"){ ${"jto_can".$i} = 'Y'; } else{ ${"jto_can".$i} = 'N'; } } print_r($jto_can1.$jto_can2.$jto_can3.$jto_can4.$jto_can5.$jto_can6.$jto_can7); 这正确输出: YYNYYYY 但是,当我尝试在MySQL更新中使用这些变量时,它不接受更改. mysqli_query($db,"UPDATE jto SET jto_can1 = '$jto_can1',jto_can2 = '$jto_can2',jto_can3 = '$jto_can3',jto_can4 = '$jto_can4',jto_can5 = '$jto_can5',jto_can6 = '$jto_can6',jto_can7 = '$jto_can7' WHERE jto_id = '$id'")or die(mysqli_error($db)); 任何人都可以解释为什么print_r显示变量而MySQL更新不显示? 解决方法
坚持使用数组,并动态地形成查询:
$sql = 'UPDATE jto SET '; $cols = array(); foreach( range( 1,7) as $i) { $value = $_POST['can'][$i] == 'on' ? 'Y' : 'N'; // Error check here,$_POST['can'] might not exist or be an array $cols[] = 'jto_can' . $i . ' = "' . $value . '"'; } $sql .= implode( ',',$cols) . ' WHERE jto_id = "' . $id . '"'; 现在做一个var_dump($sql);查看新的SQL语句. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |