2011-12-05 168 views
1

我使用此函數來檢查記錄是否存在於我的數據庫中,並相應地執行。在數據不匹配的情況下,第二部分會出現一些錯誤:它應該插入一條新記錄,但它不會插入新數據,並返回空數據。我哪裏錯了?函數返回空數據

class User { 

function checkUser($uid, $oauth_provider, $username,$email,$twitter_otoken,$twitter_otoken_secret) 
{ 

    // Define database connection constants 
define('DB_HOST', 'localhost'); 
define('DB_USER', '*********'); 
define('DB_PASSWORD', '********'); 
define('DB_NAME', '******'); 
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    $query ="SELECT * FROM si_table WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'"; 
    $data=mysqli_query($dbc,$query); 
    $result = mysqli_fetch_array($data); 
    if (!empty($result)) { 

     # User is already present 
    } else { 

     #user not present. Insert a new Record 

    $query2 ="INSERT INTO si_table (oauth_provider, oauth_uid, user_name,email_id,twitter_oauth_token,twitter_oauth_token_secret) VALUES ('$oauth_provider',$uid,'$username','$email')"; 
     mysqli_query($dbc,$query2); 
     $query1 ="SELECT * FROM si_table WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'"; 
     $data1=mysqli_query($dbc,$query1); 
     $row = mysqli_fetch_array($data1); 

     return $row; 

    } 
    return $result; 
} 



} 
+0

返回值檢查?請大力考慮使用參數化查詢 - 這是一項小型投資,可以爲您節省SQL注入的恐慌。 – Polynomial

+0

更重要的是,INSERT語句發生了什麼?那個看起來錯了。更好地檢查錯誤:http://de3.php.net/manual/en/mysqli.error.php – Carsten

+0

對不起,我對此一點無知。你能指導我嗎? –

回答

2

您的插入查詢出現錯誤:您只爲6個字段提供了4個值。

做一些錯誤的,爲什麼您使用的mysqli和關聯查詢字符串的mysqli_query($dbc, $query2);