Класс соединения с базой данных PHP

Я пытаюсь получить пользовательский идентификатор от базы данных в классе, но у меня есть очень мало ни к какому опыту с классами, как я мог пойти о получении 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;
   }
}

Как я сказал, я все еще плохо знаком с классами, таким образом, любой совет или справка значительно ценились бы!

Заранее спасибо!

11
задан Odyss3us 12 July 2010 в 12:57
поделиться

4 ответа

Сначала создайте библиотеку классов 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';
    }
}
?>
36
ответ дан 3 December 2019 в 00:48
поделиться

Хорошо, один совет:

Все делайте не зря. Не используйте то, чего не знаете. Лучше пойди и изучи их.

Кто-то может дать вам ответ на этот конкретный вопрос, но пока вы не узнаете, что означает Объектно-ориентированный и почему вообще существуют классы , вам не следует использовать их.

8
ответ дан 3 December 2019 в 00:48
поделиться
  • Создайте два класса. Один для работы с базой данных, второй для управления данными пользователя или аутентификации.
  • Для методов создания класса SQL connect (), query (), fetch () и т. Д.
  • Для методов создания класса пользователя get ($ id) и т. Д.
4
ответ дан 3 December 2019 в 00:48
поделиться

Проблема в том, как написан ваш код, а не в классе. Посмотрите внимательнее на эту строку:

$array = mysql_fetch_array($result);

Это первый раз, когда переменная $result появляется в функции. Следовательно, связь с базой данных невозможна.

Возможный псевдокод:

  • подключиться к серверу БД
  • сделать запрос к БД
  • получить результаты
  • вернуть поле uid.

Сначала посмотрите соответствующую документацию:

4
ответ дан 3 December 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: