PHP SQLite CREATE TABLE Demo

Основы использования SQLite3 в PHP

В этой статье рассмотрим основы SQLite3 для PHP — полезной библиотеки (расширение для PHP), написанной на языке C, которая осуществляет механизм работы с данными с помощью SQL. Фактически, это безтиповая база данных, которая содержится всего в одном файле, который в свою очередь находится в самом проекте (в его файловой системе). Технически в этой базе всё — строки. Мы указываем тип данных для самой библиотеки, чтобы она сама «разруливала» сортировку по числовым полям.

Преимущества и ограничения

  • Полностью бесплатна
  • Нет необходимости в средствах администрирования
  • Высокая производительность и легкая переносимость
  • Поддержка процедурного и объектно-ориентированного интерфейсов
  • Хранение больших объемов данных
  • Хранение строк и бинарных данных неограниченной длины
  • Предназначена для небольших и средних приложений
  • Основной выигрыш в производительности, если преобладают операции вставки и выборки данных
  • При чрезвычайно активном обращении к данным, или в случае частых сортировок, SQLite работает медленнее своих конкурентов

Поддержка SQLite3 в PHP

  • ВPHP 5.0 поддержка SQLite версии 2 была встроена в ядро
  • Начиная с PHP 5.1 поддержка SQLite вынесена за пределы ядра php_sqlite
  • В PHP 5.3 добавлена поддержка SQLite версии 3 php_sqlite3
  • В PHP 5.4 поддержка SQLite версии 2 удалена php_sqlite

Особенности SQLite3

CREATE TABLE users(id INTEGER, name TEXT, age INTEGER)
CREATE TABLE users(id, name, age)

Для задания первичного ключа

id INTEGER PRIMARY KEY id INTEGER PRIMARY KEY AUTOINCREMENT

Экранирование строк через двойной апостроф

Читайте также:  Заголовок страницы

Создание, открытие и закрытие базы данных

//Создаём или открываем базу данных test.db $db = new SQLite3("test.db"); //Закрываем базу данных без удаления объекта $db->close(); //Открываем другую базу данных для работы $db->open("another.db"); //Удаляем объект unset($db);

Выполнение запроса

//Экранирование строк $name = $db->escapeString($name); //Для запросов без выборки данных $sql = "INSERT INTO users (name, age) VALUES ('$name', 25)"; //Возвращает значение булева типа $result = $db->exec($sql); //Количество изменённых записей echo $db->changes(); //Отслеживание ошибок echo $db->lastErrorCode(); echo $db->lastErrorMsg();

Подготовленные запросы

$sql = "INSERT INTO users (name, age) VALUES (:name, :age)"; //Готовим запрос $stmt = $db->prepare($sql); //Привязываем параметры $stmt->bindParam(':name',$name); $stmt->bindParam(':age',$age); //Исполняем запрос $result = $stmt->execute(); //Закрываем при необходимости $stmt->close();

Выборка данных

$sql = "SELECT name, age FROM users"; // В случае неудачи возвращает false $result = $db->querySingle($sql); //В $result - значение первого поля первой записи $result = $db->querySingle($sql, true); // В $result - массив значений первой записи // Стандартная выборка $result = $db->query($sql); // Обработка выборки $row = $result->fetchArray(); // SQLITE3_BOTH // Получаем ассоциативный массив $row = $result->fetchArray(SQLITE3_ASSOC); // Получаем индексированный массив $row = $result->fetchArray(SQLITE3_NUM);

Инструменты администрирования БД SQLite

Sqliteman — полезный инструмент для администрирования баз данных SQLite3. Это аналог привычного phpmyadmin для MySql. Программа имеет неплохой графический интерфейс на русском языке, является портативной и не требует установки на ПК. Скачать Sqliteman можно по этой ссылке .

Ещё один популярный менеджер баз данных SQLite — SQLiteStudio

Источник

Создание таблиц базы данных SQLite3 с использованием PHP PDO

В этом уроке я покажу вам, как создавать новые таблицы в базе данных SQLite с использованием PHP PDO.

Мы создадим две новые таблицы в базе данных phpsqlite, которую мы создали в предыдущем уроке. Ниже приведен код SQL, который создает таблицы проектов и задач.

CREATE TABLE IF NOT EXISTS projects ( project_id INTEGER PRIMARY KEY, project_name TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS tasks ( task_id INTEGER PRIMARY KEY, task_name TEXT NOT NULL, completed INTEGER NOT NULL, start_date TEXT, completed_date TEXT, project_id INTEGER NOT NULL, FOREIGN KEY ( project_id ) REFERENCES projects (project_id) ON UPDATE CASCADE ON DELETE CASCADE );

Чтобы создать новую таблицу в базе данных SQLite с помощью PDO, используйте следующие шаги:

  • Сначала подключитесь к базе данных SQLite, создав экземпляр класса PDO.
  • Во-вторых, выполните инструкцию CREATE TABLE, вызвав метод exec () объекта PDO.

Мы будем повторно использовать класс SQLiteConnection , который мы разработали в предыдущем уроке. Следующий класс SQLiteCreateTable демонстрирует, как создавать новые таблицы в нашей базе данных phpsqlite .

pdo = $pdo; > /** * create tables */ public function createTables() < $commands = ['CREATE TABLE IF NOT EXISTS projects ( project_id INTEGER PRIMARY KEY, project_name TEXT NOT NULL )', 'CREATE TABLE IF NOT EXISTS tasks ( task_id INTEGER PRIMARY KEY, task_name VARCHAR (255) NOT NULL, completed INTEGER NOT NULL, start_date TEXT, completed_date TEXT, project_id VARCHAR (255), FOREIGN KEY (project_id) REFERENCES projects(project_id) ON UPDATE CASCADE ON DELETE CASCADE)']; // execute the sql commands to create new tables foreach ($commands as $command) < $this->pdo->exec($command); > > /** * get the table list in the database */ public function getTableList() < $stmt = $this->pdo->query("SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name"); $tables = []; while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) < $tables[] = $row['name']; >return $tables; > >

Метод createTables() используется для создания таблиц в базе данных phpsqlite. Во-первых, у нас есть массив, в котором хранятся операторы CREATE TABLE . Затем мы перебираем массив и выполняем каждую инструкцию CREATE TABLE один за другим, используя метод exec() объекта PDO.

Метод getTableList() выбирает все таблицы в базе данных, запрашивая имя таблицы в таблице sqlite_master . Предикат в предложении WHERE гарантирует, что запрос возвращает только таблицы, а не представления. Вы узнаете, как запрашивать данные при использовании PDO в следующем уроке.

Теперь пришло время использовать разработанные нами классы. В файле index.php используйте следующий код:

connect()); // create new tables $sqlite->createTables(); // get the table list $tables = $sqlite->getTableList(); ?>          
PHP SQLite CREATE TABLE Demo
Tables

Сначала мы создаем новый экземпляр класса SQLiteCreateTable и передаем объект PDO, который создается с помощью класса SQLiteConnection .

Во-вторых, мы вызываем метод createTables() для создания новых таблиц и метод getTableList() для запроса вновь созданных таблиц.

В-третьих, в HTML коде мы отображаем список таблиц.

В этом уроке я показал, как создавать новые таблицы, выполняя оператор CREATE TABLE с использованием PHP PDO.

Источник

Создание таблиц базы данных SQLite3 с использованием PHP PDO

В этом уроке я покажу вам, как создавать новые таблицы в базе данных SQLite с использованием PHP PDO.

Мы создадим две новые таблицы в базе данных phpsqlite, которую мы создали в предыдущем уроке . Ниже приведен код SQL, который создает таблицы проектов и задач.

CREATE TABLE IF NOT EXISTS projects ( project_id INTEGER PRIMARY KEY, project_name TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS tasks ( task_id INTEGER PRIMARY KEY, task_name TEXT NOT NULL, completed INTEGER NOT NULL, start_date TEXT, completed_date TEXT, project_id INTEGER NOT NULL, FOREIGN KEY ( project_id ) REFERENCES projects (project_id) ON UPDATE CASCADE ON DELETE CASCADE );

Чтобы создать новую таблицу в базе данных SQLite с помощью PDO, используйте следующие шаги:

  • Сначала подключитесь к базе данных SQLite, создав экземпляр класса PDO.
  • Во-вторых, выполните инструкцию CREATE TABLE, вызвав метод exec () объекта PDO.

Мы будем повторно использовать класс SQLiteConnection , который мы разработали в предыдущем уроке. Следующий класс SQLiteCreateTable демонстрирует, как создавать новые таблицы в нашей базе данных phpsqlite .

pdo = $pdo; > /** * create tables */ public function createTables() < $commands = ['CREATE TABLE IF NOT EXISTS projects ( project_id INTEGER PRIMARY KEY, project_name TEXT NOT NULL )', 'CREATE TABLE IF NOT EXISTS tasks ( task_id INTEGER PRIMARY KEY, task_name VARCHAR (255) NOT NULL, completed INTEGER NOT NULL, start_date TEXT, completed_date TEXT, project_id VARCHAR (255), FOREIGN KEY (project_id) REFERENCES projects(project_id) ON UPDATE CASCADE ON DELETE CASCADE)']; // execute the sql commands to create new tables foreach ($commands as $command) < $this->pdo->exec($command); > > /** * get the table list in the database */ public function getTableList() < $stmt = $this->pdo->query("SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name"); $tables = []; while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) < $tables[] = $row['name']; >return $tables; > >

Метод createTables() используется для создания таблиц в базе данных phpsqlite. Во-первых, у нас есть массив, в котором хранятся операторы CREATE TABLE . Затем мы перебираем массив и выполняем каждую инструкцию CREATE TABLE один за другим, используя метод exec() объекта PDO.

Метод getTableList() выбирает все таблицы в базе данных, запрашивая имя таблицы в таблице sqlite_master . Предикат в предложении WHERE гарантирует, что запрос возвращает только таблицы, а не представления. Вы узнаете, как запрашивать данные при использовании PDO в следующем уроке.

Теперь пришло время использовать разработанные нами классы. В файле index.php используйте следующий код:

connect()); // create new tables $sqlite->createTables(); // get the table list $tables = $sqlite->getTableList(); ?>          
PHP SQLite CREATE TABLE Demo
Tables

Сначала мы создаем новый экземпляр класса SQLiteCreateTable и передаем объект PDO, который создается с помощью класса SQLiteConnection .

Во-вторых, мы вызываем метод createTables() для создания новых таблиц и метод getTableList() для запроса вновь созданных таблиц.

В-третьих, в HTML коде мы отображаем список таблиц.

В этом уроке я показал, как создавать новые таблицы, выполняя оператор CREATE TABLE с использованием PHP PDO.

Источник

Оцените статью