|  | Posted by Ratfish on 06/13/57 12:00 
On Jan 16, 10:36 am, Jerry Stuckle <jstuck...@attglobal.net> wrote:> Ratfish wrote:
 > > On Jan 16, 4:06 am, Jerry Stuckle <jstuck...@attglobal.net> wrote:
 > >> Ratfish wrote:
 > >>> I'm getting a "2014:: Commands out of sync; you can't run this command
 > >>> now" error on a php page when I try to call a second stored procedure
 > >>> against a MySQL db.  Does anyone know why I might be getting this
 > >>> error?  The error doesn't occur on my development box where I use the
 > >>> 'root' db user, but does occur in production where I'm using a non-
 > >>> root user record to establish a connection.  I'm essentially opening a
 > >>> connection at the top of the php page and then calling multiple stored
 > >>> procedures to fetch data.  When I call the 2nd stored procedure I'm
 > >>> getting the error.  Any info would be greatly appreciated.
 > >>> Aaron
 > >> Sorry, my crystal ball is in the shop.  Since you didn't post any code,
 > >> I find it impossible to tell what's wrong.
 >
 > >> --
 > >> ==================
 > >> Remove the "x" from my email address
 > >> Jerry Stuckle
 > >> JDS Computer Training Corp.
 > >> jstuck...@attglobal.net
 > >> ==================
 >
 > > Here's the code that fails:
 >
 > > // load the entertainment record
 > > $sql = "call sps_entertainment(?)";
 > > $stmt = $link->prepare($sql);
 > > if ($link->errno) {die($link->errno.":: ".$link->error);}
 >
 > > $stmt->bind_param("i", $EntId);
 >
 > > // execute the statement
 > > $stmt->execute();
 > > if ($link->errno) {die($db->errno.":: ".$link->error);}
 >
 > > //if ($result = $link->store_result()) {
 > > if ($stmt->bind_result($FEntId,
 > >                        $FCreateDate,
 > >                        $FCreateUser,
 > >                        $FModifyDate,
 > >                        $FModifyUser,
 > >                        $FEntTypeCode,
 > >                        $FEntName,
 > >                        $FURL,
 > >                        $FPictureQualityCode,
 > >                        $FPictureResolutionCode,
 > >                        $FRevenueSourceCode,
 > >                        $FEntDesc,
 > >                        $FEntFullDesc,
 > >                        $FSiteStatusCode,
 > >                        $FZombiiRatingCode,
 > >                        $FEntIconId))
 > > {
 > >    if ($stmt->fetch())
 > >    {
 > >       $stmt->free_result();
 > >       $stmt->close();
 > > ?>
 > > do some html here
 > > <select id="ddlEntIcon" name="ddlEntIcon">
 > >   <option value="*" >(Not Specified)</option>
 > >   <option value="NEW" >(Upload new image...)</option>
 > > <?php
 > > $sql = "call sps_entertainment_icons()";
 > > $stmt = $link->prepare($sql);
 > > if ($link->errno) {die($link->errno.":: ".$link->error);}
 > > // execute the statement  HERE'S WHERE I THINK THE ERROR IS OCCURING!
 > > $stmt->execute();
 > > if ($link->errno) {die($db->errno.":: ".$link->error);}
 > > $stmt->bind_result($EntIconId, $EntIconName);
 > > while ($stmt->fetch())
 > > {
 > >    if ($FEntIconId != "" && $FEntIconId == $EntIconId) {
 > >       echo "<option value=\"" . $EntIconId . "\" selected>" .
 > > $EntIconName . "</option>\n";
 > >    }
 > >    else {
 > >       echo "<option value=\"" . $EntIconId . "\">" . $EntIconName . "</
 > > option>\n";
 > >    }
 > > }
 > > $stmt->free_result();
 > > $stmt->close();
 > > ?>
 > > </select>
 >
 > OK, what is sps_entertainment returning?
 >
 > If it's returning more than one row, you need to continue fetching until
 > they're all returned.
 >
 > Also, I see if it returns no rows, you're not freeing the result.  You
 > still have to free the result, even if no rows are returned.
 >
 > --
 > ==================
 > Remove the "x" from my email address
 > Jerry Stuckle
 > JDS Computer Training Corp.
 > jstuck...@attglobal.net
 > ==================
 
 sps_entertainment returns a single record. I've removed the freeing of
 the result outside of the fetch if statement, but am still having the
 issue...
  Navigation: [Reply to this message] |