Переписать код под php 7.0 и выше
500 UAHДобрый день.
Надо переписать код класса для работы с mysql под php 7.4 и выше. Класс написан под php 5.6.
Чтобы методы класса остались рабочими.
несколько строк с кода:
class DBI
{
## Class properties description
var $dbh, # database link handler
$sth, # resource handler
$errno, # database error number
$errmsg, # database error message
$host, # host
$user, # user name
$pass, # password
$database, # database name
$q, # query text
$log_file = '', # Log FileName, if empty - no loging mysqlog.txt
$time_limit = 1.5; # Log only querys above this time
### Connect to server and select database
function connect($host="",$user="",$pass="", $database="")
{
error_reporting(!E_WARNING);
$this->dbh=mysql_connect($host,$user,$pass);# or $this->GetError("Connection failed");
if (!$this->dbh){
echo "На сервере ведутся технические работы. Извините за доставленное неудобство.";
exit;
return false;
}else{
error_reporting(E_ALL & ~E_NOTICE);
mysql_select_db($database) or $this->GetError("Database selection failed");
$this->database = $database;
return true;
}
}
## set auto_recoding from cp1251 to koi8ukr
function cp1251_koi8(){
$this->query("set option character set cp1251_koi8");
}
и т.д.
Отзыв заказчика о сотрудничестве с Анатолием Демченко
Переписать код под php 7.0 и вышеСпасибо. Очень быстро. Буду ещё обращаться.
Отзыв фрилансера о сотрудничестве с Алексеем Митрошиным
Переписать код под php 7.0 и вышеС Алексеем приятно иметь дело - все, что нужно, предоставил. Быстро проверил и оплатил. Рекомендую!
-
<?
class DBI
{
## Class properties description
var $dbh, # database link handler
$sth, # resource handler
$errno, # database error number
$errmsg, # database error message
$host, # host
$user, # user name
$pass, # password
$database, # database name
$q, # query text
$log_file = '', # Log FileName, if empty - no loging mysqlog.txt
$time_limit = 1.5; # Log only querys above this time
#@@@ PUBLIC METHODS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
### Connect to server and select database
function connect($host="",$user="",$pass="", $database="")
{
error_reporting(!E_WARNING);
$this->dbh=mysql_connect($host,$user,$pass);# or $this->GetError("Connection failed");
if (!$this->dbh){
echo "На сервере ведутся технические работы. Извините за доставленное неудобство.";
exit;
return false;
}else{
error_reporting(E_ALL & ~E_NOTICE);
mysql_select_db($database) or $this->GetError("Database selection failed");
$this->database = $database;
return true;
}
}
## set auto_recoding from cp1251 to koi8ukr
function cp1251_koi8(){
$this->query("set option character set cp1251_koi8");
}
## set auto_recoding to default
function to_default(){
$this->query("set option character set DEFAULT");
}
### Send query
function query($query="", $debug_query = 0){
global $debug_query;
if(!$query){
echo "DB class error: [No query parameter]";
$this->close();
exit;
}
if($debug_query){
//echo "<pre>".$query."</pre>";
echo $query."<br>---<br>";
}
$this->q = $query;
$page_parse_time_start = microtime();
if($query)
$this->sth = mysql_query($query, $this->dbh) or $this->GetError("Query error");
if ($_SERVER['REQUEST_URI'] and $this->log_file)
$tmp = explode('.',$_SERVER['REQUEST_URI']);
if($this->log_file && !in_array(strtolower($tmp[count($tmp)-1]),array('jpg', 'png', 'gif'))){
$time_start = explode(' ', $page_parse_time_start);
$time_end = explode(' ', microtime());
$time_int = $time_end[1] + $time_end[0] - ($time_start[1] + $time_start[0]);
if($time_int > $this->time_limit){
$parse_time = number_format($time_int, 3);
###### лог запросов в файл #########
$query = ereg_replace("\r", "", $query);
$query = ereg_replace("\n", " ", $query);
global $ROOT_DIRECTORY, $HTTP_AFTER, $domain;
$fp = fopen($ROOT_DIRECTORY.$this->log_file, "a+");
fwrite($fp, date(" H:i:s")." ".$parse_time." ".$_SERVER['REMOTE_ADDR']." ".($domain ? $domain.'.'.$HTTP_AFTER : $_SERVER['SERVER_NAME']).$_SERVER['REQUEST_URI']." ".session_id()." ".$query."\n");
fclose($fp);
####################################
}
}
return $this->sth;
}
### Return number of result rows of last SELECT QUERY
function num_rows($linkno=0)
//$linkno - number of link resource (default = 0)
{
if (!$this->sth && !$linkno){ ## IF NO RESOURCE
echo "No performed SELECT query: [Invalid resource link]";
exit;
}
$num=mysql_num_rows($linkno ? $linkno : $this->sth);
return $num;
}
### Return number of affected rows of performed query
function affected_rows()
//$linkno - number of link resource (default = 0)
{
$num=mysql_affected_rows();
return $num;
}
### Fetch row as array
function fetch_row($linkno=0)
//$linkno - number of link resource (default = 0)
{
//echo $linkno;
return mysql_fetch_row($linkno ? $linkno : $this->sth);
}
### Fetch row as ac array
function fetch_array($linkno=0)
//$linkno - number of link resource (default = 0)
{
return mysql_fetch_array($linkno ? $linkno : $this->sth);
}
### Fetch row as hash
function fetch_hash($linkno=0)
//$linkno - number of link resource (default = 0)
{
return mysql_fetch_assoc($linkno ? $linkno : $this->sth);
}
### Data seek; Move result pointer to the row $row, by default 0
function seek($row=0, $linkno=0)
//$linkno - number of link resource (default = 0)
{
return mysql_data_seek($linkno ? $linkno : $this->sth,$row);
}
### Fetch field
function fetch_field($row=0,$field=0, $linkno=0){
//$linkno - number of link resource (default = 0)
$flag=true;
if ($row<0 || $row>=$this->num_rows()){
//echo "Data seek error: [Invalid row offset ($row)]";
return false;
}
if ( (!is_int($field)) || $field<0 || $field>=$this->num_fields()){
echo "Field seek error: [Invalid field offset ($field)]";
exit;
}
return mysql_result($linkno ? $linkno : $this->sth,$row,$field);
}
function last_id(){
return mysql_insert_id($this->dbh);
}
function num_fields($linkno=0){
//$linkno - number of link resource (default = 0)
if (!$this->sth && !$linkno){
echo "Fetch length error: [Invalid resource link]";
exit;
}
return mysql_num_fields($linkno ? $linkno : $this->sth);
}
### Close connection
function close(){
@mysql_close($this->dbh);
}
#@@@ PRIVATE METHODS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
## Get database error parameters. Print error, close database connection and terminate
function GetError($hint="")
{
$this->errno=mysql_errno($this->dbh);
$this->errmsg=mysql_error($this->dbh);
$this->close();
$this->q = eregi_replace("select ", "<b>SELECT</b> ", $this->q);
$this->q = eregi_replace("update ", "<b>UPDATE</b> ", $this->q);
$this->q = eregi_replace("insert ", "<b>INSERT</b> ", $this->q);
$this->q = eregi_replace(" from ", "\n<b>FROM</b> ", $this->q);
$this->q = eregi_replace(" left ", "\n<b>LEFT</b> ", $this->q);
$this->q = eregi_replace(" right ", "\n<b>RIGHT</b> ", $this->q);
$this->q = eregi_replace(" join ", " <b>JOIN</b> ", $this->q);
$this->q = eregi_replace(" where ", "\n<b>WHERE</b> ", $this->q);
$this->q = eregi_replace(" order ", "\n<b>ORDER</b> ", $this->q);
$this->q = eregi_replace(" group ", "\n<b>GROUP</b> ", $this->q);
$this->q = eregi_replace(" limit ", "\n<b>LIMIT</b> ", $this->q);
$e = debug_backtrace();
echo '<b>Error</b> in line: <b>'.$e[1]['line'].'</b> [<font color="green">'.$e[1]['file'].'</font>]';
echo '<pre>';
echo $this->q;
echo '</pre>';
echo "<b>$hint.</b> Error #",$this->errno,"<blockquote>",$this->errmsg,"</blockquote>";
exit;
}
}
?>
-
Здравствуйте. Пришлите сам класс.
-
Актуальные фриланс-проекты в категории PHP
Аудит сайтуЗадача по технической отладке OpenCart 3 (ocStore). Мне нужен фиксированный бюджет за результат, а не почасовая оплата. Список работ 1. Исправление 500 ошибки: При обновлении модификаторов возникает конфликт (вероятно, между system/seo_package.ocmod.xml и unixml.ocmod.xml).… CMS, PHP ∙ 11 часов 38 минут назад ∙ 33 ставки |
Разработка единого проекта на основе доработки и объединения 4 скриптовЗдравствуйте. Нужно объединить 4 скрипта разных авторов в единое окружение. Состав - форум - видеопортал - статейный портал - доска объявлений. Сами скрипты я предоставлю. Подробное ТЗ в приложенных файлах. Прошу продумать, как за относительно небольшую стоимость можно собрать… PHP, Веб-программирование ∙ 13 часов 5 минут назад ∙ 25 ставок |
Сайт на WordPress с использованием темы Kadence и Kadence Blocks.
10 000 UAH
Нам нужно создать сайт на WordPress с использованием темы Kadence и Kadence Blocks. Интернет-магазина не будет (хотя, вероятно, он будет добавлен в будущем). Нужна главная страница и несколько внутренних страниц. Графика уже готова, структура макета в основном определена,… CMS, PHP ∙ 16 часов 32 минуты назад ∙ 31 ставка |
Разработка 2 SEO-ориентированных сайтов по продаже запчастей (квадроциклы и спецтехника)Разработка двух специализированных сайтов по продаже запчастейОбщая информация Необходимо разработать два специализированных сайта: Запчасти для квадроциклов, UTV, SSV и другой подобной техники. Запчасти для специальной техники. Существующий сайт компании:… PHP, Веб-программирование ∙ 1 день 13 часов назад ∙ 67 ставок |
Ищу White-label решение Букмекерской конторы под аренду |