Here is my snippet.
I’ve checked some other questions similar to my error, but so far I can’t get it solved.
<?php function user_exists ($username) { $username = sanitize($username); return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = $username"), 0) == 1) ? true : false; } ?>
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You should split your code in some more lines to handle those errors or special cases. mysql_query
will return zero to n rows or an error if it occurs. The returned resource will therefore only be true on non-error queries. This can be used to handle such situations like follows.
At first build and execute query, next process the resource.
$query="SELECT COUNT(user_id) FROM users WHERE username = ".$username; $result = mysql_query($query);
u may use the following to determine what is going on in case of an error:
if(!$result) die("SELECT failed: ".mysql_error());
or these idea to handle the problem
if (!$result=mysql_query($query)) { return false; // or similar operation } if (mysql_num_rows($result)!=1){ return false; }else{ return true; }
Method 2
This could happen, when mysql_query
returns false, if it fails for some reason. So you should split this into multiple statements and check the return values
$sql = "SELECT COUNT(user_id) FROM users WHERE username = $username"; $result = mysql_query($sql); if ($result === false) { // error handling return false; } return (mysql_result($result, 0) == 1) ? true : false;
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0