Call two class object failed
Call two class object failed
am 24.05.2010 03:55:44 von win.acc
Hi my friend,i wrote two classed on is user,the other is db .The user
have a property which from the db class object .
When i writing my application have both class object invoked at the
same time ,just like
$user_a = new user($para);
$db_a = new db()
Then the problem occurs only one of the class object could work, or
$user_a or $db_a not both,What 's problem of my code
The following is my source code:
class db{
/**
* Constructor
*/
var $result;
var $conn;
function db(){
require_once BOC_BASE_DIR.'/config/db.config.inc';
$this->conn = mysql_connect($db_host,$db_user,$db_pass);
//$this->conn = @mysql_connect($db_host,$db_user,$db_pass);
if (!$this->conn) {
$this->db_print_error("DB connect failed");
}
if (!mysql_select_db($db_name,$this->conn)) {
$this->db_print_error("DB select failed");
}
}
class user{
private $u_sn;
private $u_id;
private $u_name;
private $u_sex;
private $u_image;
//more property
private $u_info;
/**
* Constructor
*/
function __construct($name){
$sql = "select * from boc_user where u_name = '$name'";
$u_query = new db();
$this->u_info = array();
$u_query->db_query($sql);
$this->u_info =$u_query->db_fetch_row();
$this->u_sn = $this->u_info['u_sn'];
$this->u_id = $this->u_info['u_id'];
$this->u_name = $this->u_info['u_name'];
$this->u_sex = $this->u_info['u_sex'];
//more are give the property value
}
The two class works well in the single application when only of them
are invoked ,i cost me much time to deal it
Any advice and suggestions are thankful !
All you best
------------------------
What we are struggling for ?
The life or the life ?
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Re: Call two class object failed
am 24.05.2010 06:22:30 von dmagick
On 24/05/10 11:55, win.a wrote:
> Hi my friend,i wrote two classed on is user,the other is db .The user
> have a property which from the db class object .
>
>
> When i writing my application have both class object invoked at the
> same time ,just like
> $user_a = new user($para);
> $db_a = new db()
>
> Then the problem occurs only one of the class object could work, or
> $user_a or $db_a not both,What 's problem of my code
> The two class works well in the single application when only of them
> are invoked ,i cost me much time to deal it
> Any advice and suggestions are thankful !
You'll need to include the 'db' class first if that's in a separate file
before you include the 'user' class.
Apart from that, what's the error you're getting?
--
Postgresql & php tutorials
http://www.designmagick.com/
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Re: Call two class object failed
am 24.05.2010 19:42:13 von Tanel Tammik
""win.a"" wrote in message
news:AANLkTinhmyybnAMtY5SX5m-FYoZTsywp1kxfnSexv8ke@mail.gmai l.com...
> Hi my friend,i wrote two classed on is user,the other is db .The user
> have a property which from the db class object .
>
>
> When i writing my application have both class object invoked at the
> same time ,just like
> $user_a = new user($para);
> $db_a = new db()
>
> Then the problem occurs only one of the class object could work, or
> $user_a or $db_a not both,What 's problem of my code
>
> The following is my source code:
>
> class db{
> /**
> * Constructor
> */
>
> var $result;
> var $conn;
>
> function db(){
> require_once BOC_BASE_DIR.'/config/db.config.inc';
> $this->conn = mysql_connect($db_host,$db_user,$db_pass);
> //$this->conn = @mysql_connect($db_host,$db_user,$db_pass);
> if (!$this->conn) {
> $this->db_print_error("DB connect failed");
> }
>
> if (!mysql_select_db($db_name,$this->conn)) {
> $this->db_print_error("DB select failed");
> }
> }
>
> class user{
> private $u_sn;
> private $u_id;
> private $u_name;
> private $u_sex;
> private $u_image;
>
> //more property
>
> private $u_info;
>
>
> /**
> * Constructor
> */
> function __construct($name){
> $sql = "select * from boc_user where u_name = '$name'";
> $u_query = new db();
> $this->u_info = array();
> $u_query->db_query($sql);
> $this->u_info =$u_query->db_fetch_row();
>
> $this->u_sn = $this->u_info['u_sn'];
> $this->u_id = $this->u_info['u_id'];
> $this->u_name = $this->u_info['u_name'];
> $this->u_sex = $this->u_info['u_sex'];
>
> //more are give the property value
>
> }
>
>
> The two class works well in the single application when only of them
> are invoked ,i cost me much time to deal it
> Any advice and suggestions are thankful !
>
>
> All you best
> ------------------------
> What we are struggling for ?
> The life or the life ?
Hi,
one way to do that:
class Database {
private $link;
function __construct() {
$this->conn();
}
function conn() {
$this->link = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME, $this->link);
}
function query($query) {
return mysql_query($query, $this->link);
}
function fetch_assoc($result) {
return mysql_fetch_assoc($result);
}
}
class User {
private $db;
function __construct($db) {
$this->db = $db;
}
function find_by_username($username) {
$result = $this->db->query("select * from boc_user where
username='$username'");
return $this->db->fetch_assoc($result);
}
}
$db = new Database;
$user = new User($db);
$userdata = $user->find_by_username('username');
?>
I did not check the code, so there might be some typos. Anyway it should
help you!
Br
Tanel
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Re: Call two class object failed
am 24.05.2010 19:43:46 von Tanel Tammik
""win.a"" wrote in message
news:AANLkTinhmyybnAMtY5SX5m-FYoZTsywp1kxfnSexv8ke@mail.gmai l.com...
> Hi my friend,i wrote two classed on is user,the other is db .The user
> have a property which from the db class object .
>
>
> When i writing my application have both class object invoked at the
> same time ,just like
> $user_a = new user($para);
> $db_a = new db()
>
> Then the problem occurs only one of the class object could work, or
> $user_a or $db_a not both,What 's problem of my code
>
> The following is my source code:
>
> class db{
> /**
> * Constructor
> */
>
> var $result;
> var $conn;
>
> function db(){
> require_once BOC_BASE_DIR.'/config/db.config.inc';
> $this->conn = mysql_connect($db_host,$db_user,$db_pass);
> //$this->conn = @mysql_connect($db_host,$db_user,$db_pass);
> if (!$this->conn) {
> $this->db_print_error("DB connect failed");
> }
>
> if (!mysql_select_db($db_name,$this->conn)) {
> $this->db_print_error("DB select failed");
> }
> }
>
> class user{
> private $u_sn;
> private $u_id;
> private $u_name;
> private $u_sex;
> private $u_image;
>
> //more property
>
> private $u_info;
>
>
> /**
> * Constructor
> */
> function __construct($name){
> $sql = "select * from boc_user where u_name = '$name'";
> $u_query = new db();
> $this->u_info = array();
> $u_query->db_query($sql);
> $this->u_info =$u_query->db_fetch_row();
>
> $this->u_sn = $this->u_info['u_sn'];
> $this->u_id = $this->u_info['u_id'];
> $this->u_name = $this->u_info['u_name'];
> $this->u_sex = $this->u_info['u_sex'];
>
> //more are give the property value
>
> }
>
>
> The two class works well in the single application when only of them
> are invoked ,i cost me much time to deal it
> Any advice and suggestions are thankful !
>
>
> All you best
> ------------------------
> What we are struggling for ?
> The life or the life ?
Hi,
one way to do that:
class Database {
private $link;
function __construct() {
$this->conn();
}
function conn() {
$this->link = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME, $this->link);
}
function query($query) {
return mysql_query($query, $this->link);
}
function fetch_assoc($result) {
return mysql_fetch_assoc($result);
}
}
class User {
private $db;
function __construct($db) {
$this->db = $db;
}
function find_by_username($username) {
$result = $this->db->query("select * from boc_user where
username='$username'");
return $this->db->fetch_assoc($result);
}
}
$db = new Database;
$user = new User($db);
$userdata = $user->find_by_username('username');
?>
I did not check the code, so there might be some typos. Anyway it should
help you!
Br
Tanel
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php