Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Создание базы данных и таблицы SQLite

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Мар 29, 2007 4:01 pm    Заголовок сообщения: Создание базы данных и таблицы SQLite
Ответить с цитатой

Рассмотрим на примере создание базы данных и таблицы SQLite в PHP 5:

<?php
// Создание базы/таблицы данных
error_reporting(0); // Отключение вывода стандартных сообщений об ошибках
try {
if (!file_exists("sample.db")) {
// Базы нет, создаем ее
$db = sqlite_open("sample.db");
if (!$db) throw new Exception("невозможно создать базу!");
$sql = "CREATE TABLE test
(
id INTEGER PRIMARY KEY, -- автоинкремент
textfield TEXT, -- текстовое поле неограниченной длины
intfield INTEGER(2) -- числовое поле
)";
sqlite_query($db, $sql);
if (sqlite_last_error($db)) throw new Exception("невозможно создать таблицу в базе!");
echo "База и таблица созданы";
sqlite_close($db);
}
} catch (Exception $exception) {
echo "Произошла ошибка в строке", $exception->getLine()-1, ": ",
$exception->getMessage();
}
?>

Поскольку удобнее всего для обработки ошибок применять в PHP 5 новую конструкцию try/catch/throw, которая будет также выводить информацию о возникшей ошибке, то в самом начале PHP сценария будет уместно функцией error_reporting() отключить вывод стандартных сообщений об ошибках.

Далее идет блок try, в котором проверяется наличие файла базы данных. Если такового не существует – переходим к его созданию функцией sqlite_open(), которая не только открывает файлы баз данных, но и создает его в случае отсутствия, чем мы и воспользуемся в нашем сценарии. В случай невозможности создания файла через throw new Exception() генерируется исключение и управление передается в блок catch для вывода сообщения об ошибке и завершения сценария. Если же создание файла базы произошло успешно – формируется SQL-запрос на создание тестовой таблицы.

Каким же должен быть SQL-запрос для создания таблицы, учитывая бестиповый характер таблиц SQLite? Все очень и очень просто - при описании полей таблицы принимаются в расчет только имена полей. Указание типов полей и их максимальной длины является необязательным и SQLite’ом не учитывается! Исключение составляет только первичный ключ (PRIMARY KEY), объявленный как INTEGER – такое поле автоматически становится автоинкрементным.

Таким образом, аналогичную таблицу можно было бы создать и таким SQL-оператором:
CREATE TABLE test(id INTEGER PRIMARY KEY, textfield, intfield)

Выполнение запроса к базе производится функцией sqlite_query(), а проверка успешности выполнения запрос функцией sqlite_last_error().

Необязательно закрытие соединения с базой SQLite выполняется функцией sqlte_close().

В случае генерации любого исключения в блоке catch методом getLine() объекта $exception осуществляется вывод номера строки, где ошибка произошла, и методом getMessage() информационного сообщения об ошибке.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис