我正在做一个项目,可以更新员工的姓名,职位,部门和标签。当用户没有向文本框输入任何东西时,表格更新为空格
但是,当我做我的项目,它不会更新,我知道我的代码有问题。你们会不会介意检查它。
我的php页面有一个index.php这是主菜单,如果你点击列表中的员工名字,会弹出一个窗口。弹出的是更新。
我的PHP代码(现在更新),但是发现错误:
<?php
$con=mysql_connect('localhost','root','pss') or die(mysql_error());
mysql_select_db('intra',$con);
if(isset($_POST['submitted']))
{
$sql = "SELECT * FROM gpl_employees_list where emp_id='".$_POST['eid']."'";
$result = mysql_query($sql) or die (mysql_error());
if(!$result || mysql_num_rows($result) <= 0)
{
return false;
}
$qry = "UPDATE gpl_employees_list SET emp_nme = '".$_POST['ename']."', emp_pos = '".$_POST['pos']."', emp_dep = '".$_POST['dep']."', emp_tag = '".$_POST['tag']."' WHERE emp_id = '".$_POST['eid']."' ";
mysql_query($qry) or die (mysql_error());
?><script>window.close();</script><?php
}
?>
*注:这是现在更新,但如果用户离开文本框的一个空的,它更新还有空格的表格,这是我现在的问题。我如何避免这种情况?我的意思是,如果用户将一个文本框留空,那么具有空值的数据仍然必须包含其旧值,但是如何使用此代码执行此操作?感谢那些谁可以帮助
MisaChan
Pleeeeease确保您合法性检查该输入,或者更好的是,使用参数在你的查询中,在使用这个之前。您正在使用该代码请求SQL注入攻击。您需要对emp数据执行preg_match(),理想情况下使用SELECT * FROM gpl_employees_list WHERE emp_id =?;为您的查询。 – 2011-05-31 03:22:18
@King Skippus:我已经更改了我的代码,请参阅Sir CleaverQuack的帖子,这与我现在使用的代码差不多,尽管仍然存在一点错误 – MisaChan 2011-05-31 03:56:13
输入仍需要清理。永远不要将用户提供的输入直接传递到查询中。请阅读,特别是底部的“缓解”部分:http://en.wikipedia.org/wiki/SQL_injection – 2011-05-31 04:00:45