Jump to content

Call to a member function SqlQuery() on a non-object in


pcman

Recommended Posts

i am tring to extend from DataAccess to Module... but is showing an error:

location: Library/database.php

 

<?php
Class DatabaseAccess
{

public $db;
public $sqlQuery;

public function ConnectDB($host,$user,$password,$database){
	$this->db = mysqli_connect($host,"",$password);
	if (mysqli_connect_errno()) {
		echo '<p>Cannot connect to DB: ' . mysqli_connect_error() . '</p>';
	}
	$this->db &= mysqli_select_db($this->db,$database);
}
public function SqlQuery($sql)
{
	return mysqli_query($this->db,$sql);//or die("Error:".mysqli_error()."<br />The Query:<b>$sql</b>");
}

}
?>

 

The Module class

Location:Library/module.php

 

<?php
Class Module extends DatabaseAccess
{


public function DoInsert($tableName,$fields = array(),$values = array())//delete from table
{	
	$fields = implode(",", $fields);
	$values = implode("','", $values);

	return $this->db->SqlQuery ("INSERT INTO $tableName($fields) VALUES('$values')");//The error is here!!!!!!!!!!!!!!!!

}

}
?>

 

and the controller file name:

newProfile.php

this is the cdode

 

include "config.php";
include "Library/database.php";
include "Library/module.php";	
$db = new DatabaseAccess;
		$db->ConnectDB(MYSQL_HOST_NAME,MYSQL_USER_NAME,MYSQL_PASSWORD,MYSQL_DATABASE);//define in config.php
		$db->Module = New Module;
		$db->Module->DoInsert("twitter_profiles",
		array(profile_user_name,profile_password,user_id),
		array($_POST['userName'],$_POST['password'],$userID));//DoInsert(tableName,Fields,Values)
		echo sysMessage("NewProfile.txt");

 

the error:

 

Fatal error:   /home/omerbsh/blalalala.com/tra/Library/module.php on line 59

the error is in the modle class where the comment: "The error is here!!!!!!!!!!!!!!!!"

its cant to fine SqlQuery object but why???

 

thanks :confused:

Link to comment
Share on other sites

You calling code is weird too, you might want to take another look at how inheritance actually works.

 

include "config.php";
include "Library/database.php";
include "Library/module.php";

$db = new Module;
$db->ConnectDB(MYSQL_HOST_NAME,MYSQL_USER_NAME,MYSQL_PASSWORD,MYSQL_DATABASE);//define in config.php
$db->DoInsert("twitter_profiles",
  array(profile_user_name,profile_password,user_id),
  array($_POST['userName'],$_POST['password'],$userID)
);//DoInsert(tableName,Fields,Values)
echo sysMessage("NewProfile.txt");

Link to comment
Share on other sites

You calling code is weird too, you might want to take another look at how inheritance actually works.

 

include "config.php";
include "Library/database.php";
include "Library/module.php";

$db = new Module;
$db->ConnectDB(MYSQL_HOST_NAME,MYSQL_USER_NAME,MYSQL_PASSWORD,MYSQL_DATABASE);//define in config.php
$db->DoInsert("twitter_profiles",
  array(profile_user_name,profile_password,user_id),
  array($_POST['userName'],$_POST['password'],$userID)
);//DoInsert(tableName,Fields,Values)
echo sysMessage("NewProfile.txt");

 

Could you explain what doesn't add up here in his code? Sure it would help him more and also for my own curiosity.

Link to comment
Share on other sites

As thorpes post says, your inheritance is a little bit wacky..

By calling Module class it will inherit all the stuff inside the DatabaseAccess class as it is extended from it..

 

You version, I believe, creates a DatabaseAccess object then creates a 'Module' within that class, in doing so, the Module object inside your DatabaseAccess object will inherit from DatabaseAccess and essentially you will have 2 DatabaseAccess objects available to your script (at least I think so)

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.