[英]How to check if a data exist in database in PHP? (MULTIPLE)
我有一个带有 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.";
}
我想做的事情是检查“电子邮件”和“昵称”是否存在于数据库中。 我怎样才能做到这一点?
尝试这个,
SELECT `username`, `email`, `nickname`
FROM `users`
WHERE (`username` = '$username' OR
`email` = '$username' OR
`nickname` = '$username' )
你不应该使用普通的mysql_query
引用 php.net
警告此扩展自 PHP 5.5.0 起已弃用,将来会被删除。 相反,应使用 MySQLi 或 PDO_MySQL 扩展。 另请参阅 MySQL:选择 API 指南和相关常见问题以了解更多信息。 此函数的替代方法包括: mysqli_query() PDO::query()
尝试使用 PDO 或 mysqli。 这对于防止 mysql 注入至关重要。
http://php.net/manual/en/pdo.prepared-statements.php
这是如何使用 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
}
}
使用准备好的语句。 并且 mysql_* 已被弃用
SELECT * 而不是 SELECT 'username' vill 返回您整行,您可以检查所有字段
$result = $conn->query($sql);
if ($result->num_rows > 0) {
print_r($result);
} else {
echo "0 results";
}
// sql injection friendly code! *here*
$query = "SELECT `username` FROM `users`
WHERE '$username' IN (`username`, `email`, `nickname`) LIMIT 1;";
$query_run = mysql_query($query);
if (mysql_num_rows($query_run) == 1){
echo "Username already exist.";
}
我假设值在users
是唯一的,就像你做== 1
。 否则将== 1
更改为> 0
并删除LIMIT 1
。
$q = "SELECT id WHERE 'username' = $username"
if(num_rows > 0)
//found
像这样的事情,我不记得要对受影响的行进行计数的MySQL函数,您必须进行查找。
扩展 Nouphal 所说的内容。
$query = "SELECT `username` FROM `users` WHERE `username'=$username OR 'email' = $email";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.