Php 在mysql数据库中更新html复选框时出现问题
这是我的代码,我不知道为什么当我尝试更新mysql数据库时复选框没有更新。仅更新输入框Php 在mysql数据库中更新html复选框时出现问题,php,mysql,html,Php,Mysql,Html,这是我的代码,我不知道为什么当我尝试更新mysql数据库时复选框没有更新。仅更新输入框 <tr> <td><font size="3"></td> <td></td> <input type='hidden' name="stats6" value="0"> <td><input name="stats6" type="checkbox" id="dep" value="<?php
<tr>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats6" value="0">
<td><input name="stats6" type="checkbox" id="dep" value="<?php echo $row["STAT6"]; ?>" <?php echo $row["STAT6"] ? 'checked="checked"' : ''; ?> >Dependent</td>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats7" value="0">
<td><input name="stats7" type="checkbox" id="emp" value="<?php echo $row["STAT7"]; ?>" <?php echo $row["STAT7"] ? 'checked="checked"' : ''; ?> >Employee</td>
<td><font size="3"></td>
<td></td>
<input type='hidden' name="stats8" value="0">
<td><input name="stats8" type="text" id="" value="<?php echo $row["STAT8"]; ?>" maxlength="15">Others</td>
我的代码可能有什么问题?它不会真正更新复选框中的数据。当我尝试搜索它时,它的所有零可能是每个复选框的隐藏输入需要在它的标记后面。我不记得PHP如何处理重复项,但这可能是问题所在 但是,另一个注意事项。
我希望代码只是一个例子,您应该永远不要将输入的数据直接放入数据库,而不事先对其进行清理和验证。这样做将打开SQL注入的可能性。首先,建议使用$\u POST[“hnum”]而不是$\u POST[hnum]。我猜这是个打字错误
这才是真正的问题。复选框值仅在选中时设置。如果未选中它们,则不会有类似$_POST[“hnum”]的值。也许这是你问题的一部分。你有很多问题。以下是一些关键问题:
- 您的HTML无效。在表单元格之间有
元素。使用一个 - 您有多个相同名称的输入(
和您的Html是正确的,问题在于您的SQL 我刚刚对你的问题做了更正,试试看
您忘记在post值中添加“'” 例如,您有$sql = "UPDATE t2 SET "; $sql .= "HOSPNUM ='".$_POST['hnum']."', "; $sql .= "ROOMNUM ='".$_POST['rnum']."', "; $sql .= "ADATE ='".$_POST['adate']."', "; $sql .= "ADTIME ='".$_POST['adtime']."', "; $sql .= "LASTNAME ='".$_POST['lname']."', "; $sql .= "FIRSTNAME ='".$_POST['fname']."', "; $sql .= "MIDNAME ='".$_POST['mname']."', "; $sql .= "CSTAT ='".$_POST['cs']."', "; $sql .= "AGE ='".$_POST['age']."', "; $sql .= "BDAY ='".$_POST['bday']."', "; $sql .= "ADDRESS ='".$_POST['ad']."', "; $sql .= "SEX ='".$_POST['sex']."', "; $sql .= "STAT ='".$_POST['stats1']."', "; $sql .= "STAT2 ='".$_POST['stats2']."', "; $sql .= "STAT3 ='".$_POST['stats3']."', "; $sql .= "STAT4 ='".$_POST['stats4']."', "; $sql .= "STAT5 ='".$_POST['stats5']."', "; $sql .= "STAT6 ='".$_POST['stats6']."', "; $sql .= "STAT7 ='".$_POST['stats7']."', "; $sql .= "STAT8 ='".$_POST['stats8']."', "; $sql .= "NURSE ='".$_POST['nurse']."'"; $sql .= "WHERE PNUM ='".$_POST['pnum']."'"; mysql_query($sql);
,它应该是$\u POST[stats1]
$\u POST['stats1']
试试看您有一个SQL注入漏洞。HTML不正确,并且您的SQL有主要的SQL注入漏洞。$sql = "UPDATE t2 SET "; $sql .= "HOSPNUM ='".$_POST['hnum']."', "; $sql .= "ROOMNUM ='".$_POST['rnum']."', "; $sql .= "ADATE ='".$_POST['adate']."', "; $sql .= "ADTIME ='".$_POST['adtime']."', "; $sql .= "LASTNAME ='".$_POST['lname']."', "; $sql .= "FIRSTNAME ='".$_POST['fname']."', "; $sql .= "MIDNAME ='".$_POST['mname']."', "; $sql .= "CSTAT ='".$_POST['cs']."', "; $sql .= "AGE ='".$_POST['age']."', "; $sql .= "BDAY ='".$_POST['bday']."', "; $sql .= "ADDRESS ='".$_POST['ad']."', "; $sql .= "SEX ='".$_POST['sex']."', "; $sql .= "STAT ='".$_POST['stats1']."', "; $sql .= "STAT2 ='".$_POST['stats2']."', "; $sql .= "STAT3 ='".$_POST['stats3']."', "; $sql .= "STAT4 ='".$_POST['stats4']."', "; $sql .= "STAT5 ='".$_POST['stats5']."', "; $sql .= "STAT6 ='".$_POST['stats6']."', "; $sql .= "STAT7 ='".$_POST['stats7']."', "; $sql .= "STAT8 ='".$_POST['stats8']."', "; $sql .= "NURSE ='".$_POST['nurse']."'"; $sql .= "WHERE PNUM ='".$_POST['pnum']."'"; mysql_query($sql);