Re: mysql_num_rows == 0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Code runs smoothly now, thanks. It's always great to pick up diverse coding
tips through the conversations here.

2011/5/30 Nazish <nazish@xxxxxxx>

> That did the trick: I was over-enthusiastic in my usage of
> die(mysql_error).
>
> I initially used mysql_error to troubleshoot another problem (which has now
> re-emerged), but that's a different question which is puzzling me. The error
> message ($alert = "Username already exists!";) displays on the page as
> soon as the value has been inserted into mysql. It's strange, since the
> message should be bypassed through the else statement, and the script only
> runs if the user clicks 'submit'. Is this familiar?
>
>
> >        $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
>
> 2011/5/30 Peter Lind <peter.e.lind@xxxxxxxxx>
>
>> On 30 May 2011 22:31, Nazish <nazish@xxxxxxx> 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>
>>
>
>

[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux