Различные вопросы по PHP и MySQL

243K
.
Сексуальность валенка
Folour, Мне вообщем всёровно но подкупило немного "писать по короче придется"
.
Зачем там вообще обьект нужен? Вот тут такое вот сделал: http://pastebin.com/DmSRpP6M
Х.з работает ли, я не проверял.
.
The Frontend-Warrior
Как посчитать число запросов к базе данных при генерации страницы?
Пользуюсь mysqli::query
.
(\/)____o_O____(\/)
Blade, есть же stat
KMysqli Object
(
    [affected_rows] => 0
    [client_info] => mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
    [client_version] => 50010
    [connect_errno] => 0
    [connect_error] => 
    [errno] => 0
    [error] => 
    [error_list] => Array
        (
        )

    [field_count] => 0
    [host_info] => 127.0.0.1 via TCP/IP
    [info] => 
    [insert_id] => 0
    [server_info] => 5.5.34-log
    [server_version] => 50534
    [stat] => Uptime: 1262  Threads: 1  Questions: 2  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.001
    [sqlstate] => 00000
    [protocol_version] => 10
    [thread_id] => 1
    [warning_count] => 0
)
.
Blade
The Frontend-Warrior
# Koenig (02.05.2015 / 17:41)
Blade, есть же stat
спасибо.
.
Blade
The Frontend-Warrior
там общее число запросов с какого-то момента отображается? с обновлением страницы число Questions увеличвается
.
(\/)____o_O____(\/)
Blade, вроде как стартовал мускул
.
Сексуальность валенка
Жаль в pdo не храница кол. запросов
Пришлось делать так
<?php
class DB {
    
    protected static $connection;
    private static $instance = null;
    private $querycount = 0;
    private $querytime = 0.0;
    
    public static function getInstance() {
        if(is_null(self::$instance)) {
            self::$instance = new DB;
        }
        return self::$instance;
    }
    
    public static function connection() {
        if (is_null(static::$connection)) {
            
            # Данные от бд
            $dbcfg = [
                'host' => 'localhost',
                'name' => 'myblog',
                'user' => 'root',
                'pass' => ''
            ];
            
            # Параметры подключения
            $opt = [
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
            ];
            
            try {
                static::$connection = new PDO("mysql:host=".$dbcfg['host'].";dbname=".$dbcfg['name'], $dbcfg['user'], $dbcfg['pass'], $opt);
            } catch (PDOException $e) {
                throw new RuntimeException('Не удалось установить соединение с базой данных:%s'. $e->getMessage());
            }
        }

        return static::$connection;
    }

    public static function prepare($sql, $values = null) {
        $stime = microtime(true);
        $sth = static::connection()->prepare($sql);
        $sth->execute($values);
        self::getInstance()->querytime += (microtime(true) - $stime);
        self::getInstance()->querycount++;
        
        return $sth;
    }
    
    public static function getQueryCount() {
        return self::getInstance()->querycount;
    }
    
    public static function getQueryTime() {
        return self::getInstance()->querytime;
    }

    public static function __callStatic($method, array $arguments ) {
        return call_user_func_array([static::connection(), $method], $arguments);
    }

}
?>


Мне пришлось добавить getInstance ибо через :: можно назначать только статические переменные
Можно ли както сделать такое?

class MyClass {
    private $count;
    
    public static function updateCount() {
        self::$count++;
    }

-------
MyClass::updateCount();

Тойсть без обекта?
.
Delphinum
class MyClass {
    private static $count;

    public function __construct(){
        static::$count++;
    }
}

-------
$a = new MyClass;
$b = new MyClass;
$c = new MyClass;
echo MyClass::$count;

Может тебе нужно это?

Если хочешь без объекта, сделай $count статичным (static) в своем коде.
.
Сексуальность валенка
Delphinum, Мне надо переменную по несколько раз изменять, а статическую можно только раз, или нет?
Всего: 7969