Trying to check if username already exists in MySQL database using PHP

mysql, php, sql

Solution

change your query to like.

$username = mysql_real_escape_string($username); // escape string before passing it to query.
$query = mysql_query("SELECT username FROM Users WHERE username='".$username."'");

However, MySQL is deprecated. You should instead use MySQLi or PDO

Problem

I've looked at the many other posts that were similar to my issue and implemented their solutions (as far as I can tell) as exactly as I could. However, every time I execute this script, the code in the else block is executed (even when the username inputted is one that is already present). The table name is 'Users' and the column that I am trying to search is 'username'. The input from my form was read into `$username` and I verified that it was read in properly using echo. `$con` contains the connection to the server. At some point I also put in `echo $query` (nothing was printed) and `echo mysql_num_rows($query)` (nothing was printed). Here's the relevant segment of the code. Would really appreciate some tips. ``` $query = mysql_query("SELECT username FROM Users WHERE username=$username", $con); if (mysql_num_rows($query) != 0) { echo "Username already exists"; } else { ... } ``` EDIT: Apparently I was supposed to be using mysqli for my server and the way I checked the num_rows for that was by doing $query->num_rows since it was a property of the object. Thanks for all the help!

Original source

Related problems