Я пытаюсь получить пользовательский идентификатор от базы данных в классе, но у меня есть очень мало ни к какому опыту с классами, как я мог пойти о получении uid от DB и затем возвратить 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;
}
}
Как я сказал, я все еще плохо знаком с классами, таким образом, любой совет или справка значительно ценились бы!
Заранее спасибо!
Сначала создайте библиотеку классов 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
. Сначала посмотрите соответствующую документацию: