【发布时间】:2011-07-17 17:35:40
【问题描述】:
我想要一个插入查询,但在插入之前我会检查用户名和电子邮件是否被其他人使用。如果使用,我想取消插入查询并回显一条消息以说明是否正在使用用户名或电子邮件。
这是我的代码:
$sql = "SELECT 1 FROM user WHERE username='".$_POST['username']."'";
if(!$result = mysql_query($sql))
die(mysql_error());
while($row = mysql_fetch_array($result))
die('This username is already exists');
$sql = "SELECT 2 FROM user WHERE email='".$_POST['email']."'";
if(!$result = mysql_query($sql))
die(mysql_error());
while($row = mysql_fetch_array($result))
die('This email address is already exists');
$sql = "insert into user (username,email,password,tel,type) values ('".$_POST['username']."','".$_POST['email']."','".$_POST['password']."','".$_POST['telnumber']."','member')";
if(!mysql_query($sql))
die(mysql_error());
我想把这三个 sql 语句合二为一。它可以是使用案例,也可以是您建议的其他内容。所以, 是否可以将此代码压缩到一个 sql 查询中?
因此我需要的是
sql = "sql_query"
if(!$result = mysql_query($sql))
die(mysql_error());
while($row = mysql_fetch_array($result)){
if($row['result']==1)
die('This username is already exists');
else if($row['result']==2)
die('This email is already exists');
}
die('you have succesfully registered');
感谢您的建议。
【问题讨论】:
-
如果你能用通俗易懂的语言解释你想要实现的目标和你在做什么,非 php 的人也能提供帮助,而且 php 的人也很容易理解
-
顺便说一句,您可能希望在将参数传递给 MySQL 之前绑定参数(或至少转义它们),除非您过于喜欢 SQL 注入攻击
-
我添加了一些关于我在做什么的解释