I am so sorry!! that was a typo!!! my false!
you should do [ mysqli_next_result($db->connection); ] rather than [
$lastResult = mysqli_next_result( $db->connec ); ]
i should also say that you have to put this in a method inside your
app_model.php file in order to have it accessible from any user defined
model you build for your application.

- soosa


On Fri, May 23, 2008 at 6:25 AM, domichal <[EMAIL PROTECTED]> wrote:

>
> Hi guys
>
> I'm having very similar problem, but this solution doesn't work for
> me.
> I'm calling stored procedure which returns a result, then i'm calling
> another one which uses this result. If I run them separately both
> works correctly, but if I run them one-after-another I'm getting
> 'commands out of sync' error
>
> Following line causes problem:
>
> $lastResult = mysqli_next_result( $db->connec );
>
> There's no such variable as 'connec' or anything similar in
> ConnectionManager object and I don't know how to obtain my current
> connection id.
> I'll be appreciate for any help.
>
> Cheers
> domichal
>
> On May 20, 4:04 pm, Ma'moon <[EMAIL PROTECTED]> wrote:
> > ok, now i got it done :-)
> > it turned out that calling consequent stored procedure using
> $model->query(
> > $queryStr ) is causing memory issues through the execution of the
> controller
> > accessing the target associated model, to solve this issue i have created
> a
> > method inside my user defined model, call it manageMysqlResult, from
> within
> > this method you call "mysqli_next_result" which in its turn prepares the
> > next result set from a previous call to mysqli_multi_query(), here is
> > exactly how i have constructed my model:
> >
> > *class Video extends AppModel {
> >         var $name       = 'Video';
> >         var $useTable = 'videos';
> >         function manageMysqlResult**() {
> >                 $db             =& ConnectionManager::getDataSource(
> > $this->useDbConfig );
> >                 $lastResult = mysqli_next_result( $db->connec );
> >         }
> >
> > }
> >
> > *and from within my controller i call it like this:
> >
> > *// get most watched videos
> > $mostWatched = $this->Video->query('CALL SP_getMostViewedVideos(1,3)');
> > $this->Video->**manageMysqlResult**();
> > $this->set('mostWatched' , $mostWatched);
> >
> > // get most rated videos
> > $mostRated = $this->Video->query('CALL SP_getMostRatedVideos(1,3)');
> > $this->Video->**manageMysqlResult**();
> > $this->set('mostRated' , $mostRated);
> >
> > // get recent added videos
> > $resentAdded = $this->Video->query('CALL SP_getMostRecentVideos(1,3)');
> > $this->Video->**manageMysqlResult**();
> > $this->set('resentAdded' , $resentAdded);
> >
> > *hopefully that will help someone someday passing through this if facing
> > any!
> > Thanks for all the help "AD7six" really much appreciated, i owe you the
> > hottest cup of coffee ever :-)
> >
> > - soosa
> > *
> > *
> >
> > On Tue, May 20, 2008 at 4:14 AM, Ma'moon <[EMAIL PROTECTED]> wrote:
> > > According to this link "
> > >http://dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html"; the
> sql
> > > result set should be freed from memory in order to execute consequent
> > > queries after each other, am not sure if this is a bug in CakePHP or
> not but
> > > it seems that the result set is not being freed from memory after
> executing
> > > the queries consequently.
> > > is there any way that i can call mysql_free_result from the controller
> in
> > > order to the following:
> >
> > > $mostWatched = $this->Video->query('CALL SP_getMostViewedVideos(1,3)');
> > > *$this->Video->freeUserDefinedQueryResultSet();*
> > > $mostRated     = $this->Video->query('CALL
> SP_getMostRatedVideos(1,3)');
> > > *$this->Video->freeUserDefinedQueryResultSet();*
> > > $resentAdded  = $this->Video->query('CALL
> SP_getMostRecentVideos(1,3)');
> > > *$this->Video->freeUserDefinedQueryResultSet();*
> >
> > > though this should be done from the core but it doesn't seem to be
> working!
> >
> > > i am using version 1.1.19.6305, i forgot to say so above and am sorry
> for
> > > that, anyone?
> >
> > > On Mon, May 19, 2008 at 6:06 AM, Ma'moon <[EMAIL PROTECTED]> wrote:
> >
> > >> Hello guys,
> > >> i have a problem where i am trying to execute the following queries in
> my
> > >> controller "consequently!":
> > >> $mostWatched = $this->Video->query('CALL
> SP_getMostViewedVideos(1,3)');
> > >> $mostRated     = $this->Video->query('CALL
> SP_getMostRatedVideos(1,3)');
> > >> $resentAdded  = $this->Video->query('CALL
> SP_getMostRecentVideos(1,3)');
> > >> and it results to "*SQL Error: 2014: Commands out of sync; you can't
> run
> > >> this command now in cake/libs/model/datasources/dbo_source.php on line
> 440
> > >> *"
> >
> > >> i would really appreciate it if any one can tell me why this is
> happening
> > >> and how to solve it!
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to