|
|
| |
|
|
| |
для: mindless
(10.01.2007 в 22:35)
| | |
<?
class mysql_database {
protected $db_idnt; //resource podklu4enija ka baze dannih
protected $errors = array(); //massiv hranit vse o6ibki prozi6ed6ije v baze za vremja raboti skripta
// -------------- kostruktor i destruktor -----------------------------------
//konstruktor - Vizivajetsa pri sozdanii peremennoj podklu4ajetsa k baze dannih
//v slu4ae windows podklu4ajetysa s defoltovimi parametrami, a v slu4aje UNIX, s zadannimi
public function __construct($host_name, $db_name, $db_login, $db_pass) {
//podklu4ajemsa k baze i v slu4ae o6ibki, zapisivajem ee v log
if ( @getenv('COMSPEC') ) //rabotajem v windows
$this->db_idnt = mysql_connect('localhost', 'root', '') or $errors[] = mysql_error();
else // v UNIX
$this->db_idnt = mysql_connect($host_name, $db_login, $db_pass) or $errors[] = mysql_error();
//sozdajem bazu dannih esli ee e6o net
$q = "CREATE DATABASE IF NOT EXISTS $db_name";
$this->mysql_qw($q) or $errors[] = mysql_error();
mysql_select_db($db_name, $this->db_idnt)or $errors[] = mysql_error();
mysql_query ("set names 'cp1251'"); //podderkzka russkoj kodirovki
}
//destruktor - otklu4ajetsa ot bazi dannih
public function __destruct() {
@mysql_close($this->db_idnt);
}
//--------------- funkcii raboti s bazoj dannih ----------------------------
public function mysql_qw() {
// Получаем все аргументы функции.
$args = func_get_args();
// Если первый параметр имеет тип "ресурс", то это ID соединения.
$conn = $this->db_idnt;
// Формируем запрос по шаблону.
$query = call_user_func_array("mysql_make_qw", $args);
// Вызываем SQL-функцию.
return mysql_query($query, $conn);
}
//funkcija pe4atajet spisok vseh o6ibok proizo6ed6ih po hodu raboti skripta
public function print_errors() {
foreach ($this->errors as $no=>$err)
echo "$no) $err<br>";
}
//peredelivajet result set v massiv
public function array_from_result($r) {
for ($data = array(); $row = mysql_fetch_assoc($r); $data[] = $row);
return $data;
}
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: mindless
(10.01.2007 в 22:55)
| | | Очень даже наглядно
<?php
//...
function connect($dsn, $persistent = false)
{
if (!PEAR::loadExtension('mysql')) {
return $this->raiseError(DB_ERROR_EXTENSION_NOT_FOUND);
}
$this->dsn = $dsn;
if ($dsn['dbsyntax']) {
$this->dbsyntax = $dsn['dbsyntax'];
}
$params = array();
if ($dsn['protocol'] && $dsn['protocol'] == 'unix') {
$params[0] = ':' . $dsn['socket'];
} else {
$params[0] = $dsn['hostspec'] ? $dsn['hostspec']
: 'localhost';
if ($dsn['port']) {
$params[0] .= ':' . $dsn['port'];
}
}
$params[] = $dsn['username'] ? $dsn['username'] : null;
$params[] = $dsn['password'] ? $dsn['password'] : null;
if (!$persistent) {
if (isset($dsn['new_link'])
&& ($dsn['new_link'] == 'true' || $dsn['new_link'] === true))
{
$params[] = true;
} else {
$params[] = false;
}
}
if (version_compare(phpversion(), '4.3.0', '>=')) {
$params[] = isset($dsn['client_flags'])
? $dsn['client_flags'] : null;
}
$connect_function = $persistent ? 'mysql_pconnect' : 'mysql_connect';
$ini = ini_get('track_errors');
$php_errormsg = '';
if ($ini) {
$this->connection = @call_user_func_array($connect_function,
$params);
} else {
ini_set('track_errors', 1);
$this->connection = @call_user_func_array($connect_function,
$params);
ini_set('track_errors', $ini);
}
if (!$this->connection) {
if (($err = @mysql_error()) != '') {
return $this->raiseError(DB_ERROR_CONNECT_FAILED,
null, null, null,
$err);
} else {
return $this->raiseError(DB_ERROR_CONNECT_FAILED,
null, null, null,
$php_errormsg);
}
}
if ($dsn['database']) {
if (!@mysql_select_db($dsn['database'], $this->connection)) {
return $this->mysqlRaiseError();
}
$this->_db = $dsn['database'];
}
return DB_OK;
}
//...
?>
|
| |
| |
|
|
| |
|
|
| |
для: Sergey89
(10.01.2007 в 22:44)
| | | спасибо... там не очень наглядно | |
| |
|
|
| |
|
|
| |
для: mindless
(10.01.2007 в 22:35)
| | | PEAR::DB | |
| |
|
|
| |
|
|
| | приведи пожалуйста простой пример в котором происходилп какая нибудь полезная функция для работы с БД с использованием ООП | |
| |
|
|
|