|
|
Модератор форума: Dimitro, LightInDarkness |
Форум Web раздел Web форум Простейший класс для работы с БД |
Простейший класс для работы с БД |
Code class db { private $host = 'localhost'; private $base = 'temp'; private $user = 'root'; private $pass = ''; private $charset = 'utf8'; private $collation = 'utf8_general_ci'; // соединение с базой -------------------------------------------------- function connect() { $this->db = mysql_connect($this->host, $this->user, $this->pass); mysql_select_db($this->base, $this->db); mysql_query('SET NAMES ' . $this->charset); mysql_set_charset($this->charset); } // выборка данных ------------------------------------------------------ function select($fields, $tables, $conditions) { if (count($fields)===0 || count($tables)===0 || count($conditions)===0) return FALSE; else { // поля reset ($fields); list($key, $val) = each($fields); $query_text = 'SELECT ' . $val; while (list($key, $val) = each($fields)) $query_text = $query_text . ', ' . $val; // таблицы reset ($tables); list($key, $val) = each($tables); $query_text = $query_text . ' FROM ' . $val; while (list($key, $val) = each($tables)) $query_text = $query_text . ', ' . $val; // условия reset ($conditions); list($key, $val) = each($conditions); $query_text = $query_text . ' WHERE ' . $key . '=' . $val; while (list($key, $val) = each($conditions)) $query_text = $query_text . ', ' . $key . '=' . $val; return $mysql_query($query_text); } } // закрытие соединения ------------------------------------------------- function disconnect() { mysql_close($this->db); } //---------------------------------------------------------------------- } Простейший класс для работой с БД: подключение, запрос, отключение. Перед вставкой данных в запрос неплохо бы их очистить от некорректных данных и привести к соответствующим типам, дабы численные данные стояли в запросе без кавычек, а текстовые - в них. Если с первым проблем нет, то как как лучше сделать второе я не знаю. Не очень хочется при обращении к объекту передавать кроме ключа и значения еще и тип переменной. К каждому ключу при обращении к классу можно дописывать _int, _string или _bool, при обработке их отрезать и обрабатывать значения в соответствии с ними. Но как-то некрасиво это...
Сообщение # 1 написано 25.02.2012 в 18:23
|
И зачем оно? когда все активно переходят на mysqli и PDO?
Добавлено (26.02.2012, 11:52) Code private $host = 'localhost'; private $base = 'temp'; private $user = 'root'; private $pass = ''; private $charset = 'utf8'; private $collation = 'utf8_general_ci'; function connect() { $this->db = mysql_connect($this->host, $this->user, $this->pass); mysql_select_db($this->base, $this->db); mysql_query('SET NAMES ' . $this->charset); mysql_set_charset($this->charset); } Зачем настройки внутри класса? а если нужны несколько подключений?
DumpMe v1.0 - система автоматического переноса персонажей
Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 3 написано 26.02.2012 в 11:52
|
RazArt, тс копипастит без понимания сути.
вообще данный раздел обречён на вымирание. всё потому, что здесь инфу (опять же без понимания сути) копипастят все, кому не лень и тупо ради местной валюты.
Сообщение # 4 написано 01.03.2012 в 01:30
|
И да.. код убог в принципе, хотя бы экранирование можно было добавить в запросах и проверку на подключение, прежде чем его закрывать..
DumpMe v1.0 - система автоматического переноса персонажей
Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 5 написано 01.03.2012 в 09:31
|
Quote (Хомяк_Егор) Не очень хочется при обращении к объекту передавать кроме ключа и значения еще и тип переменной. Советчик блин... http://php.net/manual/en/function.gettype.php
Сообщение # 6 написано 02.03.2012 в 02:18
|
| |||
| |||