【发布时间】:2013-09-16 00:26:58
【问题描述】:
我刚刚制作了一个注册表单,但在添加最终验证(MySQL 验证)时遇到了问题。
这是我得到的错误: 解析错误:语法错误,C:\xampp\htdocs\Signup\includes\signup.php 中的意外 'elseif' (T_ELSEIF) 在第 72 行
已标记第 72 行以帮助您弄清楚。
else
{
require_once("db_connect.php");
// Email validation
$query_email="SELECT email FROM users WHERE email='$email'";
$result_email=mysql_query($query_email) or die (mysql_error());
if (mysql_num_rows($result_email)>0)
{
echo "You already have an account registered on this email.";
}
// Username validation
$query_username="SELECT username FROM users WHERE username='$username'";
$result_username=mysql_query($query_username) or die (mysql_error());
elseif (mysql_num_rows($result_username)>0) /* !!! ROW 72 !!! */
{
echo "Username already registered. Pick something else";
}
// Add new user to database
else
{
$query="INSERT INTO users VALUES ('', '$username', '$password', '$email', '$first_name', '$last_name', '$birthday', '$sex', '', '$registered', '')";
mysql_query($query) or die (mysql_error());
echo "User created!";
}
}
如果我评论 // Username validation 和 // Add new user to database 之间的所有内容,一切正常(除了我没有用户名验证这一事实)。
如果您想知道 $username 是什么:
$username = mysql_real_escape_string($_POST['username']);
我已经阅读了关于 SO 的一些关于意外 elseif 的问题,但我只是不明白。括号看起来没问题,并且 elseif 提供了一个条件。请在降级之前让我知道,以便我可以编辑我的问题。谢谢!
【问题讨论】:
-
if 语句和 elseif 语句之间不能有代码
-
$query_username="SELECT username FROM users WHERE username='$username'"; $result_username=mysql_query($query_username) or die (mysql_error());这两行需要移动 -
PSA:
mysql_*函数是 deprecated in PHP 5.5。不建议编写新代码,因为它会阻止您将来升级。相反,请使用 MySQLi 或 PDO 和 be a better PHP Developer。 -
是的,我知道我应该使用 MySQLi。我这样做只是为了练习,如果我在网络上使用此表单,我会跳到它。非常感谢您提供的“成为更好的 PHP 开发人员链接”。我看了看,它确实提供了很多信息。
标签: php if-statement