I have this code:
$rows = array();
$res = mysql_query($someQuery);
if(!mysql_errno())
while($row = mysql_fetch_assoc($res))
$rows[] = $row;
$someQuery
is an arbitrary query that I write in to a form. The mysql_errno catches the case when I write a mysql query with errors in it. But, I just discovered that when I do a "Delete from table_name" query, it of course is not an error, but at the same time the mysql_fetch_assoc fails with a "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /blah/blah/file.php on line x".
I've tried to look for it in the manual (maybe I'm just blind...) but is there a function I can use to check if $res is a valid MySQL result resource or not?
if ($res)
should work fine to check if it's a resource. is_resource() will determine if its a valid resource at all.
You could also check mysql_affected_rows to try to determine if it's an INSERT/UPDATE/etc
Along with is_resource()
you can use get_resource_type()
to check whether it is a MySQL resource.
$res_type = is_resource($res) ? get_resource_type($res) : gettype($res);
if(strpos($res_type, 'mysql') === false) {
echo 'Invalid resource type: ' . $res_type;
}
get_resource_type()
may return "mysql link"
or "mysql link persistent"
depending on your connection type.
Check http://www.lampdocs.com/blog/2010/10/how-to-check-that-a-php-variable-is-a-mysql-resource/ for the solution. Hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With