MySQL class меньше кода,больше дела (Оценка: +14)

Печать / RSS-лента
Последние время надоело выполнять кучу запросов к базе и писать кучу кода,подсчёт результатов,проверка на существование,перегонять масcивы.Я решил написал class для удобной работы и сокращения кода.
Вот собственно небольшой класс

<?
/*
MySQL класс BY Орёл
icq: 952042
*/
/*Возвратит число*/
define('COUNT_NUM','countnum');
/*Возвратит запрос*/
define('QUERY','query');
/*Возвратит масив*/
define('ARRAY','array');
/*Возвратит асоцытивный масив*/
define('ASSOC','assoc');
/*Возвратит масив для Smarty цикла section*/
define('TEMPLATE','template');
/*Запрос с проверкой на существование ,возвращение true ,false*/
define('NUM_ROWS','numrows');
class sql_class{
function sql($query,$option){
if ($option == 'countnum'){
$OR_SELECT = mysql_result(mysql_query($query),0);
if (!$OR_SELECT) {$OR_SELECT = 0;}
return $OR_SELECT;
}elseif ($option == 'query'){
$OR_SELECT = mysql_query($query);
return $OR_SELECT;
}elseif ($option == 'array'){
$OR_SELECT = mysql_query($query);
$data = mysql_fetch_array($OR_SELECT);
return $data;
}elseif ($option == 'assoc'){
$OR_SELECT = mysql_query($query);
$data = mysql_fetch_assoc($OR_SELECT);
return $data;
}elseif ($option == 'template'){
$OR_SELECT = mysql_query($query);
while ($data = mysql_fetch_assoc($OR_SELECT)){
$dat[] = $data;
}
return $dat;
}elseif ($option == 'numrows'){
$OR_SELECT = mysql_query($query);
if (mysql_num_rows($OR_SELECT)){
return true;
}else{
return false;
}
}
}
function mysql_error(){
return mysql_error();
}
}
?>

Синтакси функции sql::sql()
sql(query,option)
query - Запрос в базу
option - Опция что вернуть
6 опций
COUNT_NUM - вернёт число mysql_result()
QUERY - вернёт запрос
ARRAY - вернёт масив с нумерацией
ASSOC - вернёт асоцитивный массив без нумерации полей ,но с именами
TEMPLATE - вернёт масив для шаблона Smarty
NUM_ROWS - выполнит проверку на существование и вернёт true или false
Ниже приведу примеру работы с классом.
Вызываем класс

<?
$s = new sql; // Достаточно один раз вызвать в шапке
?>

вызов функции
Пример-1 нам надо подсчитать количество записей в таблице с id 1

<?
$result = $s->sql("SELECT COUNT(*) FROM table WHERE id='1'",COUNT_NUM);
echo $result; // Результат
?>

Пример-2 выполнить и вернуть запрос

<?
$result = $s->sql("SELECT * FROM table WHERE id='1'",QUERY);
?>

Пример-3 сделать запрос и вернуть масив с именами полей и нумерацией.

<?
$result = $s->sql("SELECT * FROM table WHERE id='1'",ARRAY);
print_r($result); //Читаем массив
?>

Пример-4 получить асоцитивный масив без нумерации полей,но с именами

<?
$result = $s->sql("SELECT * FROM table WHERE id='1'",ASSOC);
print_r($result); //Читаем массив
?>

Пример-5 сделать запрос с выполнением подсчёта mysql_num_rows возвращение true или false
К примеру нам надо проверить существует ли в таблицы юзер с id 1

<?
$result = $s->sql("SELECT * FROM user WHERE id='1'",NUM_ROWS);
if ($result){
echo 'Пользователь существует';
}else{
echo 'Пользователь не существует';
}
?>

Пример-6 пример запроса и возвращение массива для шаблонизатора Smarty

<?
$result = $s->sql("SELECT * FROM user ",TEMPLATE);
?>

Вывод в шаблоне
{section name=i loop=$result}
{$result[i].name_pole}
{/section}
Для вывода ошибки запроса

echo $s->mysql_error();

Вроде всё ).gif .
Автор статьи: orel (15.05.10 / 13:01)
php mysql, class
Рейтинг: +14
Просмотров: 2177
Комментарии (15) »