webguync Posted December 30, 2010 Share Posted December 30, 2010 Hi, I am testing out some simple code while trying out PHP OOP to connect to the MySQL DB. I am getting an undefined variable error, but not sure why. the test code is: <?PHP error_reporting(E_ALL); include('includes/db.php'); $db = new db(); $db->query("SELECT title FROM blog_posts WHERE id = '7'"); if($sql) { while($r = mysql_fetch_array($sql)) { echo $r['title']; } } ?> and the code to connect to the DB is: <?PHP class db { private $hostname; private $username; private $password; private $database; private $connect; private $select_db; public function db() { $this->hostname = ""; $this->username = ""; $this->password = ""; $this->database = ""; } public function open_connection() { try { $this->connect = mysql_connect($this->hostname,$this->username,$this->password); $this->select_db = mysql_select_db($this->database); } catch(exception $e) { return $e; } } public function close_connection() { try { mysql_close($this->connect); } catch(exception $e) { return $e; } } public function query($sql) { try { $this->open_connection(); $sql = mysql_query($sql); } catch(exception $e) { return $e; } $this->close_connection(); return $sql; } } ?> the specific error is... Undefined variable: sql in E:\DBTest.php on line 9 Quote Link to comment Share on other sites More sharing options...
BlueSkyIS Posted December 30, 2010 Share Posted December 30, 2010 because $sql is not defined, it is not set to anything. you need to define it using the return value from the function, something like this: $sql = $db->query("SELECT title FROM blog_posts WHERE id = '7'"); if($sql) // etc. Quote Link to comment Share on other sites More sharing options...
webguync Posted December 30, 2010 Author Share Posted December 30, 2010 ah yes, makes sense. That was easy enough, thx! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.