Re: problem with my class
| From: | Thijs Lensselink | Date: | Thu, 16 Apr 2009 13:45:34 +0000 |
| Subject: | Re: problem with my class | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-291558@lists.php.net to get a copy of this message | ||
Luke Slater wrote:
> On Thu, Apr 16, 2009 at 2:41 PM, Thijs Lensselink <php@addmissions.nl
> <mailto:php@addmissions.nl>> wrote:
>
> Luke wrote:
> > 2009/4/16 Jan G.B. <ro0ot.w00t@googlemail.com
> <mailto:ro0ot.w00t@googlemail.com>>
> >
> >> 2009/4/16 Luke <luke@blog-thing.com
> >> <mailto:luke@blog-thing.com>>:
> >>> Hi guys,
> >>>
> >>> I've been learning about object oriented programming and I wrote
> this
> >> test
> >>> class but it doesn't seem to be working, it throws no errors but
> doesn't
> >>> insert anything to the database either. I have made sure that
> the data
> >> being
> >>> sent when the class is instantiated is valid.
> >>>
> >>> I'm probably missing something simple here...
> >>>
> >> Are you actually calling your public function?
> >>
> >> $x = new RecipeCreator('a', 'b', 'c');
> >> $x->saveRecipe();
> >>
> >> You might want to insert some error reporting...
> >>
> >> echo mysql_error(); and alike
> >>
> >>
> >> Byebye
> >>
> >>
> >>
> >>
> >>> I have already
> >>>
> >>> class RecipeCreator
> >>> {
> >>> private $rtitle;
> >>> private $problem;
> >>> private $solution;
> >>>
> >>> function __construct ($t, $p, $s)
> >>> {
> >>> if(!isset($t, $p, $s))
> >>> {
> >>> throw new Exception ('Missing parameters for
> >>> __construct, need $title $problem and $solution');
> >>> }
> >>>
> >>> $this->rtitle = mysql_real_escape_string($t);
> >>> $this->problem = mysql_real_escape_string($p);
> >>> $this->solution = mysql_real_escape_string($s);
> >>> }
> >>>
> >>> public function saveRecipe()
> >>> {
> >>> $query = "INSERT INTO recipe (title, problem,
> solution)
> >>> VALUES ('".$this->rtitle."',
> >>>
> >>> '".$this->problem."',
> >>>
> >>> '".$this->solution."')";
> >>> mysql_query($query);
> >>> }
> >>> }
> >>>
> >>> Many thanks,
> >>> Luke Slater
> >>>
> >> --
> >> PHP General Mailing List (http://www.php.net/)
> >> To unsubscribe, visit:
> >> http://www.php.net/unsub.php
> >>
> >>
> >
> > Yes I am doing that. The query seems to be going through all right
> too I
> > tested the syntax in mysql query browser and tried mysql_error()
> but there
> > was nothing.
> > I think there's an issue with the __construct because when I wrote
> a method
> > in there to return one of the properties of the function, it turned up
> > blank! As I said before the variables I'm passing in are
> definitely valid...
> >
>
> And what happens when you instantiate your object without parameters?
>
> $foo = new RecipeCreator();
>
> It should throw and exception. This way you at least know if your
> constructor is functioning properly.
>
> And take a look at the message you throw when the parameters are not
> set. The parameters are named $t, $p, $s but the message in the throw
> statement uses $title, $problem, $solution
>
> did you try echoing out the query and run it from phpMyAdmin or
> something similar?
>
>
> I changed the variables to $t $p and $s because I thought by naming them
> with $title $problem and $solution may have been getting them mixed up
> somehow.
>
> I figured out the problem, which was that I was actually calling the
> saveRecipe() method without the parentheses.
Happens to the best :)
>
> Too long programming in Perl -.-
>
> Thanks for your help,
>
> Luke Slater
Great you figured it out.
Regards,
Thijs