Так как мне приходится работать с чужими базами данных и мои программы насыщенны SQL-заросами к бд, то я предпочитаю использовать класс для этой цели... Вот собственно его и публикую... В принципе, это еще не конечный класс, а просто постепенно наполняемый, разными (для меня) необходимыми и часто используемыми функциями Код | class sql_db { var $db_connect_id; var $query_result; var $row = array(); var $rowset = array(); var $num_queries = 0;
// Конструктор класса function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true) { $this->persistency = $persistency; $this->user = $sqluser; $this->password = $sqlpassword; $this->server = $sqlserver; $this->dbname = $database; if ($this->persistency) $this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password); else $this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password); if ($this->db_connect_id) { if ($database != "") { $this->dbname = $database; $dbselect = @mysql_select_db($this->dbname); if (!$dbselect) { @mysql_close($this->db_connect_id); $this->db_connect_id = $dbselect; } } return $this->db_connect_id; } else return false; }
// Окончание работы с БД function sql_close() { if ($this->db_connect_id) { if ($this->query_result) @mysql_free_result($this->query_result); $result = @mysql_close($this->db_connect_id); return $result; } else return false; }
// Генерация обычного SQL-запроса function sql_query($query = "", $transaction = FALSE) { // Удаление любого предыдущего запроса из памяти unset($this->query_result); if ($query != "") { $this->num_queries++; $this->query_result = @mysql_query($query, $this->db_connect_id); } if ($this->query_result) { unset($this->row[$this->query_result]); unset($this->rowset[$this->query_result]); return $this->query_result; } else return ($transaction == END_TRANSACTION) ? true : false; }
// Генерация SQL-запроса для подсчета количества строк function sql_numrows($query_id = 0) { if (!$query_id) $query_id = $this->query_result; if ($query_id) { $result = @mysql_num_rows($query_id); return $result; } else return false; }
// Генерация SQL-запроса для подсчета количества строк полученных во время последнего SQL-запроса function sql_affectedrows() { if ($this->db_connect_id) { $result = @mysql_affected_rows($this->db_connect_id); return $result; } else return false; }
// Генерация SQL-запроса для подсчета количества полей function sql_numfields($query_id = 0) { if (!$query_id) $query_id = $this->query_result; if ($query_id) { $result = @mysql_num_fields($query_id); return $result; } else return false; }
// Генерация SQL-запроса для получения имени поля function sql_fieldname($offset, $query_id = 0) { if (!$query_id) $query_id = $this->query_result; if ($query_id) { $result = @mysql_field_name($query_id, $offset); return $result; } else return false; }
// Генерация SQL-запроса для получения типа поля function sql_fieldtype($offset, $query_id = 0) { if (!$query_id) $query_id = $this->query_result; if ($query_id) { $result = @mysql_field_type($query_id, $offset); return $result; } else return false; }
// Генерация SQL-запроса, возвращающего разультат в виде массива function sql_fetchrow($query_id = 0) { if (!$query_id) $query_id = $this->query_result; if ($query_id) { $this->row[$query_id] = @mysql_fetch_array($query_id); return $this->row[$query_id]; } else return false; }
// Генерация SQL-запроса, возвращающего разультат в виде многомерного массива function sql_fetchrowset($query_id = 0) { if (!$query_id) $query_id = $this->query_result; if ($query_id) { unset($this->rowset[$query_id]); unset($this->row[$query_id]); while ($this->rowset[$query_id] = @mysql_fetch_array($query_id)) $result[] = $this->rowset[$query_id]; return $result; } else return false; }
// Получение следующего ID в таблице, от последнего ID, сгенеренного запросом INSERT function sql_nextid() { if ($this->db_connect_id) { $result = @mysql_insert_id($this->db_connect_id); return $result; } else return false; }
// Освобождение памяти после SQL-запросов function sql_freeresult($query_id = 0){ if (!$query_id) $query_id = $this->query_result; if ($query_id) { unset($this->row[$query_id]); unset($this->rowset[$query_id]); @mysql_free_result($query_id); return true; } else return false; }
// Возврат кода и тела ошибки function sql_error($query_id = 0) { $result["message"] = @mysql_error($this->db_connect_id); $result["code"] = @mysql_errno($this->db_connect_id); return $result; } }
|
|