Модуль к библиотеке DBSimple для mysqli c поддержкой вызова хранимых mysql процедур и т.д.

Недавно возникла проблема с вызовом хранимых процедур в mysql.
Стандартный модуль от Котерова не позволяет их использовать.

Вот я и решил раз у меня есть такая штука — может кому то еще она будет полезна.

Модуль создан на основе стандарной библиотеки mysql от Котерова c добавлением минимальных изминений. И требует только mysqli расширение к php.
При этом старый mysql модуль тоже работает.


Для установки нужно заменить код файла /engine/lib/external/Generic.php
и добавить новый файл /engine/lib/external/DbSimple/Mysqli.php

Файлы можно скачать от сюда

Ну и немного поправить класс DbSimple_MysqlWrapper из файла /engine/lib/external/DbSimple/Mysqwrapper.php по принципу моего DbSimple_Mysqli::_performQuery

вот пример:

 function _performQuery($queryMain)
    {
    	$this->_lastQuery = $queryMain;
        $this->_expandPlaceholders($queryMain, false);
        
        $oProfiler=ProfilerSimple::getInstance();
		$iTimeId=$oProfiler->Start('query',$queryMain[0]);
        
        $result = @mysqli_query($this->link, $queryMain[0]);
        
        $oProfiler->Stop($iTimeId);
        
        if (mysqli_errno($this->link)) return $this->_setDbError($queryMain[0]);
        if (!is_resource($result)) {
            if (preg_match('/^\s* INSERT \s+/six', $queryMain[0])) {
                // INSERT queries return generated ID.
                return @mysqli_insert_id($this->link);
            }
            // Non-SELECT queries return number of affected rows, SELECT - resource.
              return $result;
            //return @mysqli_affected_rows($this->link);
        }
        return $result;
    }

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.