Я пытаюсь получить идентификатор пользователя из базы данных в классе, но у меня очень мало опыта работы с классами, как я могу получить получение uid из БД, а затем вернуть uid?
так что в основном что-то вроде этого,
class hello { public function getUid(){ //connect to the db //get all of the users info $array = mysql_fetch_array($result); $uid = $array['uid']; return $uid; } }
Как я уже сказал, я все еще новичок в занятиях, поэтому любые советы или помощь будут очень благодарны!
Thanx заранее!
Сначала создайте библиотеку классов MySQL … в соответствии с требованиями, как в этом примере:
<?php include '../config/Dbconfig.php'; class Mysql extends Dbconfig { public $connectionString; public $dataSet; private $sqlQuery; protected $databaseName; protected $hostName; protected $userName; protected $passCode; function Mysql() { $this -> connectionString = NULL; $this -> sqlQuery = NULL; $this -> dataSet = NULL; $dbPara = new Dbconfig(); $this -> databaseName = $dbPara -> dbName; $this -> hostName = $dbPara -> serverName; $this -> userName = $dbPara -> userName; $this -> passCode = $dbPara ->passCode; $dbPara = NULL; } function dbConnect() { $this -> connectionString = mysql_connect($this -> serverName,$this -> userName,$this -> passCode); mysql_select_db($this -> databaseName,$this -> connectionString); return $this -> connectionString; } function dbDisconnect() { $this -> connectionString = NULL; $this -> sqlQuery = NULL; $this -> dataSet = NULL; $this -> databaseName = NULL; $this -> hostName = NULL; $this -> userName = NULL; $this -> passCode = NULL; } function selectAll($tableName) { $this -> sqlQuery = 'SELECT * FROM '.$this -> databaseName.'.'.$tableName; $this -> dataSet = mysql_query($this -> sqlQuery,$this -> connectionString); return $this -> dataSet; } function selectWhere($tableName,$rowName,$operator,$value,$valueType) { $this -> sqlQuery = 'SELECT * FROM '.$tableName.' WHERE '.$rowName.' '.$operator.' '; if($valueType == 'int') { $this -> sqlQuery .= $value; } else if($valueType == 'char') { $this -> sqlQuery .= "'".$value."'"; } $this -> dataSet = mysql_query($this -> sqlQuery,$this -> connectionString); $this -> sqlQuery = NULL; return $this -> dataSet; #return $this -> sqlQuery; } function insertInto($tableName,$values) { $i = NULL; $this -> sqlQuery = 'INSERT INTO '.$tableName.' VALUES ('; $i = 0; while($values[$i]["val"] != NULL && $values[$i]["type"] != NULL) { if($values[$i]["type"] == "char") { $this -> sqlQuery .= "'"; $this -> sqlQuery .= $values[$i]["val"]; $this -> sqlQuery .= "'"; } else if($values[$i]["type"] == 'int') { $this -> sqlQuery .= $values[$i]["val"]; } $i++; if($values[$i]["val"] != NULL) { $this -> sqlQuery .= ','; } } $this -> sqlQuery .= ')'; #echo $this -> sqlQuery; mysql_query($this -> sqlQuery,$this ->connectionString); return $this -> sqlQuery; #$this -> sqlQuery = NULL; } function selectFreeRun($query) { $this -> dataSet = mysql_query($query,$this -> connectionString); return $this -> dataSet; } function freeRun($query) { return mysql_query($query,$this -> connectionString); } } ?>
и конфигурационный файл …
<?php class Dbconfig { protected $serverName; protected $userName; protected $passCode; protected $dbName; function Dbconfig() { $this -> serverName = 'localhost'; $this -> userName = 'root'; $this -> passCode = 'pass'; $this -> dbName = 'dbase'; } } ?>
Хорошо, один совет:
Делайте все по причине. Не используйте то, что вы не знаете. Идите и изучите их.
Можно дать ответ на этот конкретный вопрос, но пока вы не знаете, что означает объектно-ориентированный, и почему существуют классы вообще, вы не должны их использовать.
Существует проблема с тем, как написан ваш код, а не с классом. Присмотритесь к этой строке:
$array = mysql_fetch_array($result);
Это первая переменная $result
появляется в функции. Поэтому невозможно связаться с базой данных.
Возможным псевдокодом будет:
uid
. Сначала ознакомьтесь с соответствующей документацией:
Попробуйте следующее:
ini_set("display_errors", 'off'); ini_set("error_reporting",E_ALL); class myclass { function myclass() { $user = "root"; $pass = ""; $server = "localhost"; $dbase = ""; $conn = mysql_connect($server,$user,$pass); if(!$conn) { $this->error("Connection attempt failed"); } if(!mysql_select_db($dbase,$conn)) { $this->error("Dbase Select failed"); } $this->CONN = $conn; return true; } function close() { $conn = $this->CONN ; $close = mysql_close($conn); if(!$close) { $this->error("Connection close failed"); } return true; } function sql_query($sql="") { if(empty($sql)) { return false; } if(empty($this->CONN)) { return false; } $conn = $this->CONN; $results = mysql_query($sql,$conn) or die("Query Failed..<hr>" . mysql_error()); if(!$results) { $message = "Bad Query !"; $this->error($message); return false; } if(!(eregi("^select",$sql) || eregi("^show",$sql))) { return true; } else { $count = 0; $data = array(); while($row = mysql_fetch_array($results)) { $data[$count] = $row; $count++; } mysql_free_result($results); return $data; } } } $obj = new myclass(); $obj->sql_query("");
Вы можете использовать собственный класс базы данных.
Код:
<?php Class Database { private $user ; private $host; private $pass ; private $db; public function __construct() { $this->user = "root"; $this->host = "localhost"; $this->pass = ""; $this->db = "db_blog"; } public function connect() { $link = mysql_connect($this->user, $this->host, $this->pass, $this->db); return $link; } } ?>