本文共 1977 字,大约阅读时间需要 6 分钟。
在做一个员工信息更新项目时,确实面临着数据更新逻辑的挑战。根据你的描述,我来帮你分析和优化代码。
首先,数据库连接部分可以优化如下:
// 优化数据库连接try { $con = mysqli_connect('localhost', 'root', 'pss'); if (!$con) { throw new Exception("数据库连接失败"); } mysqli_select_db($con, 'intra');} catch (Exception $e) { echo "数据库连接错误:" . $e->getMessage(); die();} 接下来,处理提交数据的逻辑需要特别注意空值问题。可以通过以下方式实现:
if (isset($_POST['submitted'])) { $eid = isset($_POST['eid']) ? trim($_POST['eid']) : ''; if ($eid === '') { echo "请先选择员工"; die(); } // 获取当前员工信息 $sql = "SELECT * FROM gpl_employees_list WHERE emp_id = '" . $eid . "'"; $result = mysqli_query($con, $sql); if (!$result || mysqli_num_rows($result) <= 0) { echo "该员工不存在"; die(); } // 获取原始数据 $original_data = []; while ($row = mysqli_fetch_assoc($result)) { $original_data = $row; } // 处理更新数据,保留原始值 $update_data = []; foreach ($original_data as $field => $value) { $value = isset($_POST[$field]) ? trim($_POST[$field]) : $value; if ($value === '') { $value = $original_data[$field]; } $update_data[$field] = $value; } // 更新数据库 $update_sql = "UPDATE gpl_employees_list SET "; $fields = []; foreach ($update_data as $field => $value) { $fields[] = $field . " = '" . mysqli_escape($value) . "'"; } $fields_str = implode(', ', $fields); $update_sql .= $fields_str . " WHERE emp_id = '" . $eid . "'"; if (!mysqli_query($con, $update_sql)) { throw new Exception("更新失败:" . mysqli_error($con)); } echo "更新成功";} 以上代码实现了以下功能:
建议在页面中添加以下内容:
我正在做一个项目,可以更新员工的姓名、职位、部门和标签。
当我执行更新操作时,发现如果用户将某个文本框留空,会直接用空值更新数据库,这是我的问题。
经过分析,我意识到需要确保用户输入的值是有效的,并在文本框为空时保留原始值。以下是我优化后的PHP代码:
建议在页面底部添加以下内容:
如果你发现任何问题,请随时告诉我,我会继续帮助你解决问题。
这个优化方案可以帮助你:
如果需要进一步优化,可以在页面中添加更多的元信息和描述,以便更好地适应搜索引擎优化。
转载地址:http://nttfk.baihongyu.com/