Re: mysql_num_rows == 0
| From: | Peter Lind | Date: | Mon, 30 May 2011 20:43:34 +0000 |
| Subject: | Re: mysql_num_rows == 0 | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-47819@lists.php.net to get a copy of this message | ||
On 30 May 2011 22:31, Nazish <nazish@jhu.edu> wrote:
> Hi all,
>
> I've run into a little barrier, and I'm wondering whether you have any
> insights. I'm entering values into a MySQL database. Before running the
> mysql_query, I'm checking if the value already exists (using mysql_num_rows
> == 0). If the value already exists in the database, the page will echo
> "Username already exists" and it won't insert the user's new value. It runs
> that far, and echoes the message accordingly. However, if the username is
> new, and does not exist in the database, the query dies (without leaving a
> mysql error).
>
> I tried changing the Unique IDs in the database, but it doesn't seem to be
> the issue. The syntax seems fine, as I used it for another similar page. Any
> idea why it's dying?
>
>
> $check = mysql_query("SELECT * FROM user WHERE
> user_name='$user_name'") or die ("Unable to query
> database:".mysql_error());
>
> $numrows = mysql_num_rows($check) or die ("Unable to search
> database:".mysql_error()); -----> DIES HERE when a new value is entered. no
> mysql_error msg.
bla bla or die("more bla");
is a very bad way of handling error checks. In your particular case,
your foot has been shot off because mysql_num_rows will return 0 (no
rows match the query) and thus the die() is executed - but of course
there's no error in the query, it executed just fine, this we know
already.
Moral: don't use ' or die();' for anything else than hands on debugging purposes
Regards
Peter
--
<hype>
WWW: plphp.dk / plind.dk
LinkedIn: plind
BeWelcome/Couchsurfing: Fake51
Twitter: kafe15
</hype>