2011-05-04 226 views
0
$dbHost = "localhost"; 
$dbUsr = "root"; 
$dbPass = ""; 

function register() { 
    $username = md5($_POST['username']); 
    $password = md5($_POST['password']); 
    $remote = md5($_SERVER['REMOTE_ADDR']); 

    $connect = mysql_connect("$dbHost", "$dbUsr", "$dbPass"); 
    mysql_select_db("drupia1", $connect); 

    $query = sprintf('INSERT INTO usrs 
         (username, password, ip) 
        VALUES 
         ("$username", "$password", "$remote"', mysql_real_escape_string($username), mysql_real_escape_string($password)); 
} 

爲什麼這個腳本和我寫的任何其他方式,在MySQL中的值似乎是0?PHP MySQL插入問題

+1

因爲你在一個錯誤的方式使用'sprintf'。 – zerkms 2011-05-04 03:23:03

+0

U需要%s而不是變量 – haknick 2011-05-04 03:25:23

+0

@ianace:您建議的編輯更正了OP的問題/錯誤 - 您的更正對OP沒有幫助。 – 2011-05-04 03:28:58

回答

3

使用的sprintf請教php.net - 它應該像:

$query = sprintf("INSERT INTO usrs 
        (username, password, ip) 
        VALUES 
        ('%s', '%s', '%s')", 
        mysql_real_escape_string($username), 
        mysql_real_escape_string($password), 
        $remote); 
+0

這仍然錯過了第三個%s,據推測它應該是遙遠的。 – helloandre 2011-05-04 03:26:21

+0

您在編輯@OMG – Ibu 2011-05-04 03:27:05

+0

謝謝了!編輯 – Ibu 2011-05-04 03:27:48