Главная страница » Статьи и уроки » PHP статьи » PHP класс для работы с MySql
Опрос
Какие статьи добавлять?
Выделенные и виртуальные серверы в Европе

PHP класс для работы с MySql

Автор: administrator Дата: 22-12-2014, 10:06 Категория: Статьи и уроки / PHP статьи
(Предисловие к статье)
Данный пример и сам класс были взяты из просторов интернета и на данный момент морально устарели, поэтому мы не рекомендуем пользоваться этим классом тем, кто разбирается в php программировании и может сам написать себе подобный класс.

А теперь продолжим:
Это хелпер-класс, позволяющий легко работать с СУБД MySql в php. Класс создавался по подобию .NET и содержит функции:
ExecuteNonQuery, ExecuteScalar, GetTable, GetRow.
Все функции могут принимать как обычные SQL-запросы, так и параметризированные запросы, что позволяет исключить SQL Injection.
Класс полностью работоспособный и (не требуется каких-либо изменений и дополнений).
На мой взгляд класс устарел и давно уже актуально будет использовать MySqli вместо MySql, а также необходимо немного оптимизировать данный класс

Давайте теперь рассмотрим пример использования класса. Сам класс можно будет скачать по ссылке вконце статьи.

/*
Код класса изменять не нужно, он полностью автономный и проверен временем.
Перед использованием, необходимо в коде объявить нижеследующие константы.
Лучше всего это сделать в файле, который инклудится ко всем страницам 
(такой файл навернго должен быть, в каждом проекте):
*/

##########################################
define("DB_NAME", "database"); // имя базы данных
define("DB_USER", "user"); // имя пользователя
define("DB_PASSWORD", "password"); // пароль к бд
define("DB_HOST", "localhost"); // адрес сервера баз данных
define("DB_CHARSET", "utf8"); // кодировка бд
define("DB_COLLATE", "");
define("DB_DEBUG", false); // дебаг (true или false)
define("DB_MODE", 2); 
    // 0 - в ручную откр/закр, 
    // 1 - автоматически при запросе (не рекомендуется, т.к. много конектов),
    // 2 - открывает само и закрывает когда нужно (рекомендуется)
##########################################

// Затем, нужно создать экземпляр класса MySql:

$MySql = new MySql();

// И дальше можно выполнять запросы к серверу БД:
//  получение списка пользователей из таблицы users
$t = $MySql->GetTable("SELECT * FROM users");

if ($t != NULL && count($t) > 0) {
    // листаем циклом полученные данные из таблицы - $t в строку $r
    foreach ($t as $r) {
        // выводим на страницу данные из поля (колонки) nickname
        echo $r["nickname"]."<br />";
     }
} else {
    echo "По вашему запросу данные не найдены..";
}

// Помимо таблицы, можно получить только одну строку, 
// при помощи функции GetRow

$userId = 1; // идентификатор пользователя
$r = $MySql->GetRow("SELECT * FROM users WHERE id_users = %s", array($userId));
if ($r != NULL) {
    echo $r["nickname"]; // выводим имя пользователя
} else {
    echo "пользователь с идентификатором $userId не найден";
}

// или по логину и паролю
$login = "admin";
$password = "123456789";
$r = $MySql->GetRow("SELECT * FROM users WHERE [login] = %s AND [password] = %s", array($login, $password));
if ($r != NULL) {
    echo $r["nickname"]; // выводим имя пользователя
} else {
    echo "пользователь не найден";
}

// в запросах в качестве маркера параметров используются амперсанды %s значения параметров указываются в массиве (array), в том порядке, в котором они должны быть в запросе

// чтобы добавить, изменить или удалить данные, можно использовать функции:
// ExecuteNonQuery и ExecuteScalar
// Функция ExecuteNonQuery - выполняет указанный запрос и не возвращает никаких данных
// Функция ExecuteScalar выполняет указанный запрос и возвращает идентификатор добавленных данных

// например, можно удалить пользователя из базы
$userId = 1; // идентификатор пользователя
$MySql->ExecuteNonQuery("DELETE FROM users WHERE id_users = %s", array($userId));

// или добавить нового пользователя
$newId = $MySql->ExecuteScalar("INSERT INTO users (nickname, email, [login], [password])", array("Вася", "vasya@mysite.ru", "mylogin", "1234567890"));
echo "Создан новый пользователь - $newId";


Ну вот и подошла к концу наша небольшая статья для новичков.
Класс нет смысла описывать в статье, так как он слишком велик. Его можно просто скачать, посмотреть, и отредактировать по своему желанию и умению.

Внимание! У Вас нет прав для просмотра скрытого текста.
  • Не нравится
  • +3
  • Нравится
Просмотров: 2 584 Напечатать Жалоба
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Написать комментарий
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Код: Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: