<?php
$con=mysqli_connect("host","user","password","db_name");$sql="INSERT INTO users values (?, ?, ?)";
if ($stmt = mysqli_prepare($con,$sql)) { mysqli_stmt_bind_param($stmt, "sss",
$_POST["username"],$_POST["pwd"], $_POST["email"]); if (mysqli_stmt_execute($stmt)) {
}
}

• From PHP side of view: you might want to check if connection is successful first. It's important to check if all variables are valid (not empty, matching something). Also someone might spoof form and pass an array instead a string. From security point of view: missing salting and hashing of the password. You might also want to make sure that mail and username are unique (but you can do that using sql unique keys). Dec 14 '13 at 23:37
• It depends on your php version and available plugins. PHP 5.5 - php.net/manual/en/function.password-hash.php . Earlier versions php.net/manual/en/function.crypt.php - I recommend blowfish algorithm. Take a look on second comment, it shows a quite secure way to generate salt. Dec 14 '13 at 23:45
• @Misiur 2nd to top or 2nd to bottom? Dec 14 '13 at 23:57
• @Misiur: Why don't you turn your comments into an answer? There is enough there to be a code review. Dec 15 '13 at 8:03
• @SaggingRufus Yeah, I'm salting and hashing. Jan 10 '14 at 21:37

It looks like you have a good and solid Insert, probably pretty safe, but this still allows a user to enter data into the database that could be run at a later time, you should still check the input coming in before inserting it into the Database even though it has been "prepared".