i have this code, and for some reason, it puts in the exact value (including mysql_real...)
mysql_query("INSERT INTO members (username) VALUES ('mysql_real_escape_string($uname)')"); how do I rewrite this so I don't have this issue?
mysql_real_escape_string is a PHP function, not a MySQL function.
$value = mysql_real_escape_string($uname); mysql_query("INSERT INTO members (username) VALUES ('$value')"); UPDATE: Inline mysql_real_escape_string
mysql_query("INSERT INTO members (username) VALUES ('".mysql_real_escape_string($uname)."')");
You could also use a prepared statement, where PDO takes care of escaping for whatever database it works with (not just MySQL):
$stmt = $dbh->prepare("INSERT INTO members (username) VALUES (:username)"); // either: $stmt->bindParam(':username', $uname); $stmt->execute(); // or as Corbin pointed out in the comments: $stmt->execute(array('username' => $uname))