[英]Apply condition on mysql_query in php
抱歉,我的问题很愚蠢。(我真是太新了!)。
我有一个查询(mysql,编程语言是php):
mysql_query("INSERT INTO user (id, f_name, l_name, email, user_name, password, b_day, gender, country, p_number, address, active)
VALUES ('NULL', '$_POST[fname]', '$_POST[lname]', '$_POST[email]', '$_POST[username]', '$_POST[password]', '$_POST[bday]', '$gender', '$_POST[country]', '$_POST[phone]', 'address', '0')")
or die("The username already exist");
我需要在上面加上一些条件,比如……
if (mysql_query done inserting successfully){
// do 1-
// 2-
// 3-
// 4-
}
else {die("The username already exist");
//and do
// 1-
// 2-
// 3-
// 4-
}
顺便说一句,我在mysql数据库中将用户名设置为唯一,因此如果有人想插入类似的东西并且由于用户已经存在而将其捕获,则会给出错误消息。
我怎样才能做到这一点?
如果您在MySQL中遇到唯一的键约束,它将引发一个错误,导致PHP引发一个错误,该错误随后出现在您的日志中,这意味着您忘记了在代码中做某事。 在尝试执行INSERT语句之前,应该执行单独的SELECT查询以确定用户是否已经存在(验证)。
不建议使用mysql_ *函数。 您应该学习使用MySqli或PDO。 但是,我会回答你的问题。
$qry = mysql_query("...");
if ($qry)
{
//do 1-2-3-4
}
else
{
//did not insert
}
您可以在插入任何内容之前进行查询,以检查用户是否已经存在。
您应该清理并清洁那些$ _POSTS。
如果要查找用户名是否存在,则需要事先执行选择语句
SELECT * FROM user WHERE username = 'xxx'
运行该查询后,通过计算使用mysql_num_rows(或mysqli_num_rows)返回的行数来检查用户名是否存在。
$result = mysql_query("SELECT * FROM user WHERE username = 'xxx'", $link);
$num_rows = mysql_num_rows($result);
if ($num_rows == 0) {
mysql_query("INSERT INTO user (id,f_name,l_name,email,user_name,password,b_day,gender,country,p_number,address,active) VALUES ('NULL','$_POST[fname]','$_POST[lname]','$_POST[email]','$_POST[username]','$_POST[password]','$_POST[bday]','$gender','$_POST[country]','$_POST[phone]','address','0')")
} else {
die("The username already exist");
}
建议:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.