Re: problem with my class

From: 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

« previous php.general (#291558) next »