2011-05-04 176 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