这是我的代码
我的if-else语句有问题还是插入有任何问题
if(isset($_POST["添加"]){
$name = $_POST["username"];
$pass = $_POST["password"];
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$hph = $_POST["home"];
$hp = $_POST["hp"];
$mail = $_POST["email"];
$add = $_POST["address"];
$age = $_POST["age"];
$pos = $_POST["position"];
$dept = $_POST["dept"];
$result我用它来检查我的用户名
$result=mysql_query("select*from employee where Emp_Username='$name'");
if($name==""||$pass==""||$fname==""||$lname==""||$hph==""||$hp==""||$mail==""||$add==""||$age==""||$pos==""||$dept=="")
{
?>
<script type="text/javascript">
alert("Please fill in all the required informations.");
</script>
<?php
}
elseif(empty($errors)===true)
{
if (!preg_match("/^[A-Z][a-zA-Z -]+$/i",$_POST['fname']))
{
$fnameErr= 'Invalid key has been input*';
}
if (!preg_match("/^[A-Z][a-zA-Z -]+$/i",$_POST['lname']) )
{
$lnameErr= 'Invalid key has been input*';
}
if (filter_var($mail, FILTER_VALIDATE_EMAIL) === false)
{
$mailErr = 'A valid email address is required*';
}
if (!preg_match('/^[0-9]{1,}/', $_POST['age']))
{
$ageErr = 'Only can be numeric*';
}
if (!preg_match("/^[a-zA-Z0-9 _.,:'"'']+$/i", $_POST['address']))
{
$addErr = 'Address must be letters and numbers*';
}
if (!preg_match("/^[0-9]{2,2}[-][0-9]{7,7}$/", $_POST['home']))
{
$hphErr= 'Phone must comply with this mask: 04-4XX1234*';
}
if (!preg_match("/^[0-9]{3,3}[-][0-9]{7,7}$/", $_POST['hp']))
{
$hpErr= 'Phone must comply with this mask: 014-XXX1234*';
}
if(strlen($name)<4)
{
$nameErr = 'Your username must between 4 to 12 characters*';
}
if (strlen($pass) < 6)
{
$passErr = 'Your password must be at least 6 characters*';
}
}
elseif(mysql_num_rows($result)==0)
如果$result==0,那么我的数据将插入到员工表中,但它不能工作
{
mysql_query("insert into employee(Dept_ID, Emp_Address, Emp_Age, Position, Emp_Username, Emp_Password, Emp_Fname, Emp_Lname, ContactNo_Home, ContactNo_HP, Emp_Email)
values('$dept','$add','$age','$pos','$name','$pass','$fname','$lname','$hph','$hp','$mail')");
?>
<script type="text/javascript">
alert('Registered successfully!');
</script>
<?php
}
else
{
?>
<script type="text/javascript">
alert("Username already in use!");
</script>
<?php
}
}
希望有人能帮我找出问题并解决它。非常感谢。
不知道您的确切模式,也不知道MySQL响应的错误,很难说这里到底有什么问题。调试(断点、跨步等)将帮助您确定您期望发生的事情是否真的发生了。
正如JohnnyJS所提到的,您似乎从未打开过与MySQL的连接(尽管正如ComFreek所提到的那样,这些MySQL_*函数已被弃用)。
- 建议您使用DBAL或ORM与数据库进行交互。有很多。至少是结账原则
- 调试代码。这可以在PHPStorm这样的编辑器中使用xdebug轻松完成。您甚至可能从未执行过插入查询
- 在应用程序之外执行查询,看看它们是否按预期工作
- 您很容易受到SQL注入的攻击,需要引用用户提供的值
- 如果您使用了一个框架,您甚至不需要直接与$_POST交互。看看Symfony——它是一个优秀的PHP框架
- 此外,我不建议像这里那样返回带有警报的脚本标记。用内联的相应错误更新表单要好得多——如果您使用Symfony,这将为您完成
希望这能有所帮助。祝你好运