mysql_affected_rows() question

mysql_affected_rows() question

am 12.11.2007 18:51:31 von MS

Hi,

I'm doing a table insert and have a question about mysql_affected_rows().

The following code works. It correctly inserts the row and
mysql_affected_rows() returns 1 as it should do.

$sql = "INSERT INTO member (company, username, password, cookie,
session, ip) VALUES ('$company', '$user', '$pass', 'fakecookie',
'fakesession', '192.168.1.1')";

$result = mysql_query($sql) or MyDie("Error: ".mysql_error());

// Determine success:
// mysql_affected_rows returns the number of affected rows on
// success, and -1 if the last query failed.

$rowsAffected = mysql_affected_rows();


However the final line, the call to mysql_affected_rows, used to have
$result as an argument, like this:

$rowsAffected = mysql_affected_rows($result);

Which as far as I can tell is correct. When I use that line, the row gets
inserted correctly, but the call to mysql_affected_rows() fails, with the
following error message:

"Warning: mysql_affected_rows(): supplied argument is not a valid
MySQL-Link resource in /home/fakeuser/public_html/test/adduser.php on line
104"

I don't understand why it is not a valid link resource. The almost
identical code, but making a 'select' query and not doing an 'insert',
works fine when checking with 'mysql_num_rows($result)'.

Obviously this is not critical, since I've got it working, but in the
interests of increasing my understanding can someone explain this problem
to me please.

Many thanks.

Re: mysql_affected_rows() question

am 12.11.2007 19:26:15 von Jonas Werres

> "Warning: mysql_affected_rows(): supplied argument is not a valid
> MySQL-Link resource in /home/fakeuser/public_html/test/adduser.php on
> line 104"

PHP Manual:
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning
resultset, mysql_query() returns a resource on success, or FALSE on error.
For other type of SQL statements, UPDATE, DELETE, DROP, etc,
mysql_query() returns TRUE on success or FALSE on error.

So: Because TRUE is not a Resource, which is expected.
Ha, that was easy.

Indeed, mysql_affected_rows() does NOT expect the return value of
mysql_query(), but the connection resource:
http://de2.php.net/manual/en/function.mysql-affected-rows.ph p

So, to but it in a nutshell: RTFM!

Re: mysql_affected_rows() question

am 12.11.2007 20:15:09 von MS

Jonas Werres emailed this:
>> "Warning: mysql_affected_rows(): supplied argument is not a valid
>> MySQL-Link resource in /home/fakeuser/public_html/test/adduser.php on
>> line 104"
>
> PHP Manual:
> For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning
> resultset, mysql_query() returns a resource on success, or FALSE on error.
> For other type of SQL statements, UPDATE, DELETE, DROP, etc,
> mysql_query() returns TRUE on success or FALSE on error.
>
> So: Because TRUE is not a Resource, which is expected.
> Ha, that was easy.
>
> Indeed, mysql_affected_rows() does NOT expect the return value of
> mysql_query(), but the connection resource:
> http://de2.php.net/manual/en/function.mysql-affected-rows.ph p
>
> So, to but it in a nutshell: RTFM!

Oh, I'm so sorry! I did RTFM, but *obviously* not very effectively.

Thanks for the help.

Feeling humbled and very sorry.

Re: mysql_affected_rows() question

am 12.11.2007 20:25:50 von darko

On Nov 12, 8:15 pm, MS wrote:
> Jonas Werres emailed this:
>
>
>
> >> "Warning: mysql_affected_rows(): supplied argument is not a valid
> >> MySQL-Link resource in /home/fakeuser/public_html/test/adduser.php on
> >> line 104"
>
> > PHP Manual:
> > For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning
> > resultset, mysql_query() returns a resource on success, or FALSE on error.
> > For other type of SQL statements, UPDATE, DELETE, DROP, etc,
> > mysql_query() returns TRUE on success or FALSE on error.
>
> > So: Because TRUE is not a Resource, which is expected.
> > Ha, that was easy.
>
> > Indeed, mysql_affected_rows() does NOT expect the return value of
> > mysql_query(), but the connection resource:
> >http://de2.php.net/manual/en/function.mysql-affected-rows.p hp
>
> > So, to but it in a nutshell: RTFM!
>
> Oh, I'm so sorry! I did RTFM, but *obviously* not very effectively.
>
> Thanks for the help.
>
> Feeling humbled and very sorry.

Well, you shouldn't feel humbled and very sorry, but only sorry.
Don't exaggerate :)

Re: mysql_affected_rows() question

am 12.11.2007 20:50:57 von MS

Darko emailed this:
> On Nov 12, 8:15 pm, MS wrote:
>> Jonas Werres emailed this:
>>
>>
>>
>>>> "Warning: mysql_affected_rows(): supplied argument is not a valid
>>>> MySQL-Link resource in /home/fakeuser/public_html/test/adduser.php on
>>>> line 104"
>>> PHP Manual:
>>> For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning
>>> resultset, mysql_query() returns a resource on success, or FALSE on error.
>>> For other type of SQL statements, UPDATE, DELETE, DROP, etc,
>>> mysql_query() returns TRUE on success or FALSE on error.
>>> So: Because TRUE is not a Resource, which is expected.
>>> Ha, that was easy.
>>> Indeed, mysql_affected_rows() does NOT expect the return value of
>>> mysql_query(), but the connection resource:
>>> http://de2.php.net/manual/en/function.mysql-affected-rows.ph p
>>> So, to but it in a nutshell: RTFM!
>> Oh, I'm so sorry! I did RTFM, but *obviously* not very effectively.
>>
>> Thanks for the help.
>>
>> Feeling humbled and very sorry.
>
> Well, you shouldn't feel humbled and very sorry, but only sorry.
> Don't exaggerate :)

Ok, I take the humbled bit back. I'm just sorry. ;-)

Re: mysql_affected_rows() question

am 12.11.2007 23:21:29 von Jerry Stuckle

MS wrote:
> Jonas Werres emailed this:
>>> "Warning: mysql_affected_rows(): supplied argument is not a valid
>>> MySQL-Link resource in /home/fakeuser/public_html/test/adduser.php on
>>> line 104"
>>
>> PHP Manual:
>> For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning
>> resultset, mysql_query() returns a resource on success, or FALSE on
>> error.
>> For other type of SQL statements, UPDATE, DELETE, DROP, etc,
>> mysql_query() returns TRUE on success or FALSE on error.
>>
>> So: Because TRUE is not a Resource, which is expected.
>> Ha, that was easy.
>>
>> Indeed, mysql_affected_rows() does NOT expect the return value of
>> mysql_query(), but the connection resource:
>> http://de2.php.net/manual/en/function.mysql-affected-rows.ph p
>>
>> So, to but it in a nutshell: RTFM!
>
> Oh, I'm so sorry! I did RTFM, but *obviously* not very effectively.
>
> Thanks for the help.
>
> Feeling humbled and very sorry.
>

Don't worry about it. This area of mysql can be confusing. So many of
the calls take a result from mysql_query(), and you would think that
this one would, also.

But alas, it's (one of) the exception(s) to the "rule". :-)

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================