2013-10-05 26 views
0
$check_select = mysql_num_rows(mysql_query("SELECT * FROM `fblogin` WHERE email = '$user_email'")); 

if($check_select > 0) 
    mysql_query("INSERT INTO `fblogin` (fb_id, name, email, image, postdate) VALUES ('$user_fbid', '$user_fnmae', '$user_email', '$user_image', '$now')"); 

我從網上花了某處的代碼,我只是好奇,如果它是正確的if($check_select > 0),我覺得應該是if($check_select != 0),對不對?mysql的檢查,如果用戶存在> 0

+0

是的,你試過或沒有? –

+1

你應該在'mysql_num_rows'外面有'mysql_query',因爲你不知道查詢是否失敗,如果失敗了,它不會返回一個mysql結果對象,然後'mysql_num_rows'將會拋出錯誤,因爲你沒有傳遞一個mysql結果對象。當然不要使用'mysql' api使用'mysqli'作爲'mysql' api被貶值 –

+4

這個問題似乎是無關緊要的,因爲它是關於代碼審查的。 – BlitZ

回答

0

上面的代碼將工作,如果基本上是說如果$ check_user高於0,這是相同的話說,如果$ check_user不等於0

我以前用這個代碼,這裏是我做過什麼吧:

這是基於如果要創建一個新的用戶

您必須連接到在MYSQL_QUERY您的數據庫,我建議使用mysqli的,而不是MySQL的:

// CONNECT TO THE SERVER 
$sql_con = mysqli_connect(host,username,password,dbname); 

// RUN THE QUERY ON YOUR DATABASE 
$check_user = mysqli_query($sql_con, "SELECT * FROM `fblogin` WHERE email = '$user_email'"); 

// GET NUMBER OF USERS FOUND 
$check_user_num = mysqli_num_rows($check_user); 

// IF NO USER EXISTS IN DATABASE DO THE FOLLOWING 
if($check_user_num = 0) { 
    mysql_query("INSERT INTO `fblogin` (fb_id, name, email, image, postdate) VALUES ('$user_fbid', '$user_fnmae', '$user_email', '$user_image', '$now')"); 
} else { 
    // ELSE DO THIS CODE HERE (for me, I normally redirect with an error code, like the following:) 
    header('location:?error=exists'); 
} 
0
$conn=mysqli_connect("hostname","username","password"); 


$check_select = mysqli_query("SELECT * FROM `fblogin` WHERE email = '$user_email'"); 

$numrows=mysqli_num_rows($check_select); 

if($numrows > 0){ 
    mysqli_query("INSERT INTO `fblogin` (fb_id, name, email, image, postdate) VALUES ('$user_fbid', '$user_fnmae', '$user_email', '$user_image', '$now')"); 
}