- class Database
WT форуми -> PHP и MySQL готови кодове -> class Database
Създайте нова тема Напишете отговор 
Автор Съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 115
Bonus: 223
Мнения: 2951
Мнение 16/09/2014 3:09 pm     class Database Отговорете с цитат


Някой може ли да ми даде такъв клас за връзка с база данни. В нета има доста но просто някой който ще е практичен като конфиг файл примерно. Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
djman
Активен
Активен

Регистриран на: 12/09/2009 10:07 am

Support: 103
Bonus: 196
Мнения: 2768
Мнение 16/09/2014 3:19 pm      Отговорете с цитат


Какво искаш да има в него? Само връзка или? mysqli

Или искаш ORM?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 115
Bonus: 223
Мнения: 2951
Мнение 16/09/2014 3:23 pm      Отговорете с цитат


djman написа:
Какво искаш да има в него? Само връзка или? mysqli

Или искаш ORM?

Принципно нещо такова:

PHP code:

<?php
$dbhost = "localhost";
$dbuser = "root@localhost";
$dbpass = "";
$dbname = "test";

@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname) or die(mysql_error());
mysql_query("SET NAMES UTF8");
?>


На XAMPP mysqli незнам дали върви и изобщо нее съм се свързвал до сега по този начин с mysqli.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
djman
Активен
Активен

Регистриран на: 12/09/2009 10:07 am

Support: 103
Bonus: 196
Мнения: 2768
Мнение 16/09/2014 3:47 pm      Отговорете с цитат


Махай тия @ Very Happy И е силно желатено да не използваш mysql* вече.

Пробвай mysqli. Със сигурност работи. Ако не - включи го в php.ini Smile

http://www.phphaven.com/article.php?id=65%C2%A0
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 115
Bonus: 223
Мнения: 2951
Мнение 16/09/2014 3:59 pm      Отговорете с цитат


djman написа:
Махай тия @ Very Happy И е силно желатено да не използваш mysql* вече.

Пробвай mysqli. Със сигурност работи. Ако не - включи го в php.ini Smile

http://www.phphaven.com/article.php?id=65%C2%A0

Това което съм дал е стар код от нета за пример. Ааа работи но нужно ли е изобщо да го правя в клас това? Знам, че поствам грешен код просто за въпроса да попитам и да покажа какво имам предвид:
PHP code:

class Database{

$DB_NAME = 'oop';
$DB_HOST = 'localhost';
$DB_USER = 'root';
$DB_PASS = '';
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

// A QUICK QUERY ON A FAKE USER TABLE
$query = "SELECT * FROM `user` WHERE `id`='1'";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

// GOING THROUGH THE DATA
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row['name'];
}
}
else {
echo 'NO RESULTS';
}
// CLOSE CONNECTION
mysqli_close($mysqli);
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
djman
Активен
Активен

Регистриран на: 12/09/2009 10:07 am

Support: 103
Bonus: 196
Мнения: 2768
Мнение 16/09/2014 4:30 pm      Отговорете с цитат


Няма смисъл да пресъздаваш mysqli. Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1577
Мнение 16/09/2014 4:32 pm      Отговорете с цитат


Ето аз какво съм си писал като клас за конекция към базата. Може да се направят още подобрения като, проверки дали са попълнени свойствата за хост, юзер и т.н. също и функция за дисконект, ама и така става. Сигурно може да се направи и по добре и ако някой е по в час с тия неща няма да е лошо да се изкаже. С ПДО знам че е по добре и по сигурно но аз не съм му свикнал и за сега така си бачкам.



class database {

    private static $instance = null;
    private $db_conn = null;
    private $db_sel = null;
    private $db_host = '';
    private $db_user = '';
    private $db_pass = '';
    private $db_name = '';

    private function __construct() {
       
    }

    public static function getInstance() {

        if (self::$instance == null) {

            self::$instance = new database();
        }

        return self::$instance;
    }

    public function connect() {

        if ($this->db_conn == null) {

            $this->db_conn = @mysql_connect($this->db_host, $this->db_user, $this->db_pass);

            if ($this->db_sel == null) {

                $this->db_sel = @mysql_select_db($this->db_name, $this->db_conn);
            }
           
            else {
                throw new \Exception('Can not select database');
            }
           
        }
       
        else {
            throw new \Exception('Can not connect to database');
        }
       
    }

}

Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 115
Bonus: 223
Мнения: 2951
Мнение 16/09/2014 5:21 pm      Отговорете с цитат


djman написа:
Няма смисъл да пресъздаваш mysqli. Smile

То си е като присвояване на клас и превръщането му в обект.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
iovigi
Нов
Нов

Регистриран на: 18/08/2007 9:03 pm

Support: 1
Bonus: 2
Мнения: 38
Мнение 10/10/2014 11:29 pm      Отговорете с цитат


и според мен не нужно клас, като има mysqli
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP и MySQL готови кодове Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети