konetch Posted July 2, 2009 Share Posted July 2, 2009 I have a xxamp server set up on my local machine, and was building a simple CMS. In the phpmyadmin I have a database called CMS set up. I'm trying to conenct to it. However, there is not a password protecting it. When I set up databases on the internet I protect them with passwords. But on my local machine none of them are protected with a password. So I have the code that connets to it and it looks like this public function connect() { mysql_connect($localhost,$ ,$ ) or die("Could not connect. " . mysql_error()); mysql_select_db($this->table) or die("Could not select database. " . mysql_error()); return $this->buildDB(); } It says there is a parse error on this line (i.e. Parse error: parse error, expecting `T_VARIABLE' or `'$'' in C:\xampp\htdocs\SimpleCMS\_class\simpleCMS.php on line 93) Could you please let me know what is wrong with it. Heres the whole simpleCMS.php file <?php class simpleCMS { var $host; var $username; var $password; var $table; public function display_public() { $q = "SELECT * FROM testDB ORDER BY created DESC LIMIT 3"; $r = mysql_query($q); if ( $r !== false && mysql_num_rows($r) > 0 ) { while ( $a = mysql_fetch_assoc($r) ) { $title = stripslashes($a['title']); $bodytext = stripslashes($a['bodytext']); $entry_display .= <<<ENTRY_DISPLAY <div class="post"> <h2> $title </h2> <p> $bodytext </p> </div> ENTRY_DISPLAY; } } else { $entry_display = <<<ENTRY_DISPLAY <h2> This Page Is Under Construction </h2> <p> No entries have been made on this page. Please check back soon, or click the link below to add an entry! </p> ENTRY_DISPLAY; } $entry_display .= <<<ADMIN_OPTION <p class="admin_link"> <a href="{$_SERVER['PHP_SELF']}?admin=1">Add a New Entry</a> </p> ADMIN_OPTION; return $entry_display; } public function display_admin() { return <<<ADMIN_FORM <form action="{$_SERVER['PHP_SELF']}" method="post"> <label for="title">Title:</label><br /> <input name="title" id="title" type="text" maxlength="150" /> <div class="clear"></div> <label for="bodytext">Body Text:</label><br /> <textarea name="bodytext" id="bodytext"></textarea> <div class="clear"></div> <input type="submit" value="Create This Entry!" /> </form> <br /> <a href="display.php">Back to Home</a> ADMIN_FORM; } public function write($p) { if ( $_POST['title'] ) $title = mysql_real_escape_string($_POST['title']); if ( $_POST['bodytext']) $bodytext = mysql_real_escape_string($_POST['bodytext']); if ( $title && $bodytext ) { $created = time(); $sql = "INSERT INTO testDB VALUES('$title','$bodytext','$created')"; return mysql_query($sql); } else { return false; } } public function connect() { mysql_connect($localhost,$ ,$ ) or die("Could not connect. " . mysql_error()); mysql_select_db($this->table) or die("Could not select database. " . mysql_error()); return $this->buildDB(); } private function buildDB() { $sql = <<<MySQL_QUERY CREATE TABLE IF NOT EXISTS testDB ( title VARCHAR(150), bodytext TEXT, created VARCHAR(100) ) MySQL_QUERY; return mysql_query($sql); } } ?> Thanks Alex Link to comment https://forums.phpfreaks.com/topic/164595-connecting-to-database/ Share on other sites More sharing options...
konetch Posted July 2, 2009 Author Share Posted July 2, 2009 Okay, I was searching and found that the user was 'root' . Do you know what should go in the password field? Thanks Alex Link to comment https://forums.phpfreaks.com/topic/164595-connecting-to-database/#findComment-868092 Share on other sites More sharing options...
ldougherty Posted July 3, 2009 Share Posted July 3, 2009 When you installed mySQL it would have asked you to configure the root password for the installation. If you don't recall the password you can use the following article from mySQL to reset the password. http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html Link to comment https://forums.phpfreaks.com/topic/164595-connecting-to-database/#findComment-868096 Share on other sites More sharing options...
konetch Posted July 3, 2009 Author Share Posted July 3, 2009 Okay, I've done some more work and have created a new user. the user is alex@localhost with the password: alex . and the code I have <?php class simpleCMS { var $host; var $username; var $password; var $table; public function display_public() { $q = "SELECT * FROM testDB ORDER BY created DESC LIMIT 3"; $r = mysql_query($q); if ( $r !== false && mysql_num_rows($r) > 0 ) { while ( $a = mysql_fetch_assoc($r) ) { $title = stripslashes($a['title']); $bodytext = stripslashes($a['bodytext']); $entry_display .= <<<ENTRY_DISPLAY <div class="post"> <h2> $title </h2> <p> $bodytext </p> </div> ENTRY_DISPLAY; } } else { $entry_display = <<<ENTRY_DISPLAY <h2> This Page Is Under Construction </h2> <p> No entries have been made on this page. Please check back soon, or click the link below to add an entry! </p> ENTRY_DISPLAY; } $entry_display .= <<<ADMIN_OPTION <p class="admin_link"> <a href="{$_SERVER['PHP_SELF']}?admin=1">Add a New Entry</a> </p> ADMIN_OPTION; return $entry_display; } public function display_admin() { return <<<ADMIN_FORM <form action="{$_SERVER['PHP_SELF']}" method="post"> <label for="title">Title:</label><br /> <input name="title" id="title" type="text" maxlength="150" /> <div class="clear"></div> <label for="bodytext">Body Text:</label><br /> <textarea name="bodytext" id="bodytext"></textarea> <div class="clear"></div> <input type="submit" value="Create This Entry!" /> </form> <br /> <a href="display.php">Back to Home</a> ADMIN_FORM; } public function write($p) { if ( $_POST['title'] ) $title = mysql_real_escape_string($_POST['title']); if ( $_POST['bodytext']) $bodytext = mysql_real_escape_string($_POST['bodytext']); if ( $title && $bodytext ) { $created = time(); $sql = "INSERT INTO testDB VALUES('$title','$bodytext','$created')"; return mysql_query($sql); } else { return false; } } public function connect() { mysql_connect($localhost,alex@localhost,$alex) or die("Could not connect. " . mysql_error()); mysql_select_db($this->table) or die("Could not select database. " . mysql_error()); return $this->buildDB(); } private function buildDB() { $sql = <<<MySQL_QUERY CREATE TABLE IF NOT EXISTS testDB ( title VARCHAR(150), bodytext TEXT, created VARCHAR(100) ) MySQL_QUERY; return mysql_query($sql); } } ?> And the main display page <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ********************************************************************************* * * File: display.php | For retrieving and displaying data from the DB. * * * Created by Jason Lengstorf for Ennui Design. Copyright (C) 2008 Ennui Design. * * www.EnnuiDesign.com | [email protected] | (406) 270-4435 * * ----------------------------------------------------------------------------- * * This file was created to accompany an article written for CSS-Tricks.com * ********************************************************************************* --> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Simple CMS with PHP</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="page-wrap"> <?php include_once('_class/simpleCMS.php'); $obj = new simpleCMS(); /* CHANGE THESE SETTINGS FOR YOUR OWN DATABASE */ $obj->host = 'localhost'; $obj->username = 'alex@localhost'; $obj->password = 'alex'; $obj->table = 'alex'; $obj->connect(); if ( $_POST ) $obj->write($_POST); echo ( $_GET['admin'] == 1 ) ? $obj->display_admin() : $obj->display_public(); ?> </div> </body> </html> Is anything wrong with this thanks? I'm still getting the parse error and the content that I want displayed doens't show up. Sorry, since these are probably easy questions, but I'm just trying to get the feel for it so I can start using PHP in some of my pages. Link to comment https://forums.phpfreaks.com/topic/164595-connecting-to-database/#findComment-868098 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.