{% else-1 %}

                        
<?php
class mysql
{
private $mysql_error = '';
private $mysql_version = '';
private $mysql_error_num = 0;
private $show_error = true;

public $query_num = 0;
public $connect = false;
public $result = false;
public $time_taken = 0;

public function __construct( $show_error = true )
{
$this->show_error = $show_error;

if(!$this->connect = @mysql_connect( DB_HOST, DB_USER, DB_PASS ))
{
if( $show_error )
$this->display_error(mysql_error(), mysql_errno());
else
return false;
}

if(!@mysql_select_db(DB_NAME, $this->connect))
{
if( $show_error )
$this->display_error(mysql_error(), mysql_errno());
else
return false;
}

$this->mysql_version = mysql_get_server_info();

if(!defined('COLLATE'))
define ('COLLATE', 'cp1251');

if (version_compare($this->mysql_version, '4.1', ">="))
mysql_query('/*!40101 SET NAMES '' . COLLATE . '' */');

return true;
}

public function __destruct()
{
@mysql_close($this->connect);
}

public function query( $query, $once = false )
{
$time_before = $this->get_real_time();

if(!($this->result = mysql_query( $query, $this->connect ) ) && $this->show_error)
{
$this->mysql_error = mysql_error();
$this->mysql_error_num = mysql_errno();

$this->display_error($this->mysql_error, $this->mysql_error_num, $query);
}

$this->query_num ++;
$this->time_taken += $this->get_real_time() - $time_before;

if( $once )
return mysql_fetch_assoc( $this->result );

return $this->result;
}

public function get_row()
{
return mysql_fetch_assoc( $this->result );
}

public function get_array()
{
return mysql_fetch_array( $this->result );
}

public function num_rows()
{
return mysql_num_rows( $this->result );
}

public function free()
{
return mysql_free_result( $this->result );
}

public function safe( $source )
{
return mysql_escape_string($source);
}

private function get_real_time()
{
list($seconds, $microSeconds) = explode(' ', microtime());
return ((float)$seconds + (float)$microSeconds);
}

private function display_error($error, $error_num, $query = '')
{
if($query)
{
$query = preg_replace("/([0-9a-f]){32}/", "********************************", $query);
$query_str = "$query";
}

die('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MySQL Fatal Error</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
color: #000000;
}
-->
</style>
</head>
<body>
<font size="4">MySQL Error!</font>
<br />------------------------<br />
<br />

<u>The Error returned was:</u>
<br />
<strong>'.$error.'</strong>

<br /><br />
</strong><u>Error Number:</u>
<br />
<strong>' . $error_num . '</strong>
<br />
<br />

<textarea name="" rows="10" cols="52" wrap="virtual">' . $query_str . '</textarea><br />

</body>
</html>');
}
}


#####Пример

define( 'DB_HOST', 'localhost' );
define( 'DB_USER', 'root' );
define( 'DB_PASS', '' );
define( 'DB_NAME', 'db' );

$db = new mysql(); // $db = new mysql(false); если не нужно выводить ошибки

$text = $db->safe( $_POST['text'] ); // Короткая запись mysql_real_escape_string

$db->query('SELECT * FROM my_table WHERE text = '' . $text . '' ');
while( $row = $db->get_row() ) // или get_array()
{
...
}

$row = $db->query('SELECT count(id) FROM my_table', true); // Запрос возвращает один ряд
echo $row['count(id)'];

$db->free(); //Если запрос был "большой", желательно освободить ресурсы после использования

echo 'Запросов сделано: ' . $db->query_num;
echo 'Запросы выполены за: ' . $db->time_taken . 'c';



?>
0 31 0
0

Нет фото
Sayan * [мошенник] 0.95
• 14 окт 2014, 03:50


лучше уже тогда mysqli

0

Фотография
• 30 июн 2014, 23:10


Waffen_SS, class mysql ничего не говорит?

0

Нет фото
Sheldon-мошенник * [мошенник] 8.5
• 30 июн 2014, 20:58


зачем?

0

Нет фото
• 30 июн 2014, 02:00


Ласс где?

0

Фотография
• 30 июн 2014, 00:25


Зачем?