如何在PHP中检查数据库中是否存在数据?(多个)
我有一份带有if声明的登记表:如何在PHP中检查数据库中是否存在数据?(多个),php,mysql,database,Php,Mysql,Database,我有一份带有if声明的登记表: $query = "SELECT `username` FROM `users` WHERE `username`='$username'"; $query_run = mysql_query($query); if (mysql_num_rows($query_run)==1) { echo "Username already exist."; } 我想做的事情是检查数据库中是否存在电子邮件和昵称。 我该怎么做 使用事先准备好的陈述。mysql_*
$query = "SELECT `username` FROM `users` WHERE `username`='$username'";
$query_run = mysql_query($query);
if (mysql_num_rows($query_run)==1)
{
echo "Username already exist.";
}
我想做的事情是检查数据库中是否存在电子邮件和昵称。
我该怎么做
使用事先准备好的陈述。mysql_*已被弃用
选择*而不是选择“用户名”将返回整行,您可以检查所有字段
试试这个
SELECT `username`, `email`, `nickname`
FROM `users`
WHERE (`username` = '$username' OR
`email` = '$username' OR
`nickname` = '$username' )
我假设值在用户中是唯一的,就像您所做的那样==1。否则,将==1更改为>0,并删除限制1。扩展Nouphal所说的内容
$query = "SELECT `username` FROM `users` WHERE `username'=$username OR 'email' = $email";
您不应该使用普通的mysql\u查询
引用php.net
警告:从PHP 5.5.0开始,此扩展已被弃用,并将被删除
在将来被移除。相反,MySQLi或PDO_MySQL扩展
应该使用。另请参见MySQL:选择API指南和相关常见问题解答
了解更多信息。此功能的替代方案包括:
mysqli_query PDO::query
尝试使用PDO或mysqli。
这对于防止mysql注入至关重要
下面是一个如何使用PDO执行此操作的示例
$config['db'] = array(
'host' => 'localhost',
'username' => 'username',
'password' => 'password',
'dbname' => 'dbname'
);
$db = new PDO("mysql:host={$config['db']['host']};dbname={$config['db']['dbname']}",
$config['db']['username'], $config['db']['password']);
$sql = "SELECT * FROM `users`";
$stmt = $db->prepare($sql);
$stmt->execute();
$users = $stmt->fetchAll()
$username = 'Bob';
$email = 'bob@gmail.com';
$nickname = 'BobTheMan';
foreach($users as $user)
{
if($user['username'] == $username)
{
// there is a user by this username
}
if($user['email'] == $email)
{
// there is a user by this email
}
if($user['nickname'] == $nickname)
{
// there is a user by this nickname
}
}
OR运算符是您的朋友我应该在哪里使用OR运算符?可能的重复项也需要对变量使用双引号这是否回答了您的问题?为什么*而不仅仅是用户名,他/她只想知道用户是否已经存在。。。阅读后,我认为他想知道这些字段是否已填充,而不是他想根据这些字段检查用户名Bhavik Shah,他还想知道如何检查数据库中是否存在电子邮件和昵称,如果他只是获取用户名,然后发电子邮件,然后昵称他将对数据库运行3个查询,而不是获取所有列,然后使用PHP循环查询1个查询。我自己解决了这个问题…:但不管怎样:清晰的代码。。。谢谢为什么*而不仅仅是用户名,他/她只想知道用户是否已经存在
$config['db'] = array(
'host' => 'localhost',
'username' => 'username',
'password' => 'password',
'dbname' => 'dbname'
);
$db = new PDO("mysql:host={$config['db']['host']};dbname={$config['db']['dbname']}",
$config['db']['username'], $config['db']['password']);
$sql = "SELECT * FROM `users`";
$stmt = $db->prepare($sql);
$stmt->execute();
$users = $stmt->fetchAll()
$username = 'Bob';
$email = 'bob@gmail.com';
$nickname = 'BobTheMan';
foreach($users as $user)
{
if($user['username'] == $username)
{
// there is a user by this username
}
if($user['email'] == $email)
{
// there is a user by this email
}
if($user['nickname'] == $nickname)
{
// there is a user by this nickname
}
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
print_r($result);
} else {
echo "0 results";
}