2015-05-31 137 views
-1

函數寫入的查詢也是正確的。但這些信息並未保存在我的數據庫中的表用戶。 這是我打印時的查詢。使用插入函數在數據庫中插入數據時出錯

INSERT INTO 'users' VALUE(NULL,'omardz','[email protected]','3a9d086dcf50424fc60ccbc52173d49d','freelancer') 

include('config.php'); 

//配置文件包括用戶,通過,主機,數據庫,連接沒有任何問題!

function add_new_user($username,$email,$password,$type) 
{ 
    global $sbr_connect; 
    if(empty($username) || empty($email) || empty($password) || empty($type)) 
    return false; 

    $n_username = mysql_real_escape_string(strip_tags($username),$sbr_connect); 
    $n_email = mysql_real_escape_string(strip_tags($email),$sbr_connect); 
    $n_password = md5(mysql_real_escape_string(strip_tags($password),$sbr_connect)); 
    $n_type  = mysql_real_escape_string(strip_tags($type),$sbr_connect); 

    $query = sprintf("INSERT INTO 'users' VALUE(NULL,'%s','%s','%s','%s')",$n_username,$n_email,$n_password,$n_type); 
    $qresult = mysql_query($query); 

    echo $query; 

    if(!$qresult) 
    return false; 

    return true; 

    } 


$resultt= add_new_user('omardz','[email protected]','mououuu','man'); 
if($resultt) 
{ 
    echo 'success'; 
    sbr_db_close(); 
} 
+1

它沒有顯示任何錯誤? – Dinei

+1

避免mysql_函數。這些是不安全的,並已被棄用了很長時間(並且現在完全移除了iirc) – DanielM

+0

另外md5作爲密碼哈希是不安全的。 – DanielM

回答

2

查詢的這個部分:

INSERT INTO 'users' 
      ^ ^

您使用的是你的表單引號這是不正確的identifier qualifiers

將其刪除INSERT INTO users

或使用蜱

INSERT INTO `users` 

or die(mysql_error())mysql_query()就已經暗示了語法錯誤。


旁註:

考慮使用mysqli with prepared statements,或PDO with prepared statements他們更安全


參考文獻:


關於密碼存儲。

MD5已老,被認爲已損壞。使用CRYPT_BLOWFISH或PHP 5.5的password_hash()函數。對於PHP < 5.5使用password_hash() compatibility pack


這個sbr_db_close();顯然是一個自定義函數,我不知道它做了什麼。所以確保這些工作。