|
Posted by Lars Eighner on 11/21/07 22:06
In our last episode,
<e3845f5f-57a0-4e47-b43d-403060cec833@i37g2000hsd.googlegroups.com>,
the lovely and talented bruno_guedesav
broadcast on comp.lang.php:
> I've made a function to fetch all results as an array of result-
> arrays. Getting the result arrays is easy, via mysql_fetch_array, and
> function itself is quite simple, as follows:
> function db_query($db, $query)
> {
> $result = mysql_query($query, $db);
> $res_array = array();
> if ($result) //it is a search
> {
> while($data = mysql_fetch_array($result,MYSQL_ASSOC))
> array_push($res_array,$data);
> }
> return $res_array;
> }
> But there's a slight problem: when the query in question is an INSERT,
> UPDATE or DELETE query, PHP will show me a warning saying:
These queries do not return a result resource. See the manual. You have to
test $result before attempt to fetch, or you have to use you function only
for queries that do return result resources. (See the manual.)
> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
> result resource in /home/grad/ccomp/06/guedesav/public_html/PbBlog/inc/
> db.php on line 28
> (line 28 is "while($data = mysql_fetch_array($result,MYSQL_ASSOC))")
> and havingthis warning on the HTML output leads to be impossible to
> use header() to, for instance, go back to the post removal page. Is
> there any way to know prior to fetching if my result is of and INSERT/
> UPDATE/DELETE instead of a SELECT query?
Yes. Sort of. You can read the manual to determine which mysql queries
return results. Of course in some cases even those that do have result
returns will have an empty result. You need to test it.
--
Lars Eighner <http://larseighner.com/> usenet@larseighner.com
Countdown: 425 days to go.
Navigation:
[Reply to this message]
|