(Предисловие к статье) Данный пример и сам класс были взяты из просторов интернета и на данный момент морально устарели, поэтому мы не рекомендуем пользоваться этим классом тем, кто разбирается в 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";
Ну вот и подошла к концу наша небольшая статья для новичков. Класс нет смысла описывать в статье, так как он слишком велик. Его можно просто скачать, посмотреть, и отредактировать по своему желанию и умению.
Внимание! У Вас нет прав для просмотра скрытого текста.
|