2014-02-27 65 views
2

我與if語句註冊模式:如何檢查數據庫中的數據是否存在於PHP中? (多)

$query = "SELECT `username` FROM `users` WHERE `username`='$username'"; 
$query_run = mysql_query($query); 

if (mysql_num_rows($query_run)==1) 
{ 
    echo "Username already exist."; 
} 

我想要做的事情,也選中「電子郵件」和「綽號」,如果他們在數據庫中存在。 我該怎麼做?

+2

做到這一點的例子'或'運營商是你的朋友 –

+0

我應該在哪裏使用'或'操作?的 –

+0

可能重複[如何檢查是否值的MySQL數據庫中已存在(http://stackoverflow.com/questions/8015098/how-to-check-if-value-already-exists-in-mysql-database) – Fibonacci

回答

0
  1. 使用預處理語句。和mysql_ *已被棄用

  2. SELECT *而不是選擇 '用戶名' VILL回到你整行,你可以檢查所有領域

+0

爲什麼*,而不是僅僅'username',他/她只是想知道無論用戶是否已經存在 –

+0

哦...在閱讀之後,我認爲他想知道如果這些結局不是他想要檢查用戶名的那些字段) – rinchik

+0

Bhavik Shah,他也想知道如何檢查數據庫中是否存在「email」和「nickname」如果他只是抓住用戶名,然後電子郵件,然後暱稱,他會運行3查詢數據庫,而不是抓住所有列,然後通過PHP循環(1查詢) – oBo

2

試試這個,

"SELECT `username`, `email`, `nickname` FROM `users` WHERE (`username`='$username' OR `email`='$username' OR `nickname`='$username')"; 
+0

我解決了它自己...:P但無論如何:清除代碼...謝謝! –

+0

爲什麼*而不僅僅是用戶名,他/她只想知道用戶是否已經存在或沒有 –

0
// 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

-1
$q = "SELECT id WHERE 'username' = $username" 

if(num_rows > 0) 
//found 

類似的東西,我不記得計數受影響的行的MySQL函數,你必須看看。

0

展開式Nouphal說什麼。

$query = "SELECT `username` FROM `users` WHERE `username'=$username OR 'email' = $email"; 
1

你不應該使用普通的mysql_query

引述php.net

警告這個擴展不贊成PHP 5.5.0,並且將 在去除未來。應該使用MySQLi或PDO_MySQL擴展 。另請參閱MySQL:有關更多信息,請選擇API指南和相關常見問題 。替代該功能包括: mysqli_query()PDO ::查詢()

使用PDO或mysqli的嘗試。 這對於防止mysql注入至關重要。

http://php.net/manual/en/pdo.prepared-statements.php

這裏是如何與PDO

$config['db'] = array(
    'host'   => 'localhost', 
    'username'  => 'username', 
    'password'  => 'password', 
    'dbname'  => 'dbname' 
    ); 

try { 

$db = new PDO("mysql:host={$config['db']['host']};dbname={$config['db']['dbname']}", 
       $config['db']['username'], $config['db']['password']); 
} catch(PDOException $e) { 
     echo $e->getMessage(); 
} 

$sql = "SELECT * FROM `users`"; 
$stmt = $db->prepare($sql); 
$stmt->execute(); 

$users = $stmt->fetchAll() 

$username = 'Bob'; 
$email = '[email protected]'; 
$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 
    } 
} 
相關問題