PHP Database Object

Содержание
Введение
Подключение к БД
Создание таблицы
Импорт из csv
Похожие статьи

Введение

php.net PDO удобен тем, что если вы вдруг поменяете СУБД, например, с MySQL на PostgreSQL в код будет нужно внести минимальные изменения, PDO сделать основную работу за вас.

Подключение к базе данных с помощью PHP PDO

Рассмотрим пример подключения к MySQL и будем использовать этот код в следующих примерах.

$srvname = "localhost"; $usrname = "user_dbname"; $password = "secret"; $dbname = "user_dbname"; try { $conn = new PDO("mysql:host=$srvname; dbname=$dbname", $usrname, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully&lgt;br>"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); }

Создание таблицы с помощью PHP PDO

Сперва нужно подключиться к базе данных

Пример создания таблицы

$sql="CREATE TABLE goods ( `Id` INT NOT NULL AUTO_INCREMENT , `available` BOOLEAN, `categoryId` VARCHAR(255) , `currencyId` VARCHAR(5) , `delivery` BOOLEAN, `description` VARCHAR(50), `downloadable` BOOLEAN, `shopId` INTEGER UNSIGNED , `local_delivery_cost` INTEGER UNSIGNED , `modified_time` BIGINT UNSIGNED , `name` VARCHAR(255), `oldprice` FLOAT, `picture` VARCHAR(255), `price` FLOAT, `sales_notes` VARCHAR(255), `type` VARCHAR(255), `url` VARCHAR(255), `vendor` VARCHAR(255), PRIMARY KEY (`Id`) )"; try { $conn->query($sql); echo "Table is created"; } catch(PDOException $e) { echo "Table is not created: " . $e->getMessage(); }

Импорт из csv файла PHP PDO

Пример добавления в эту таблицу данных из .csv файла

if (($handle = fopen("goods.csv", "r")) !== FALSE) { try { // prepare sql and bind parameters using PDO $stmt = $conn->prepare("INSERT INTO goods (available, categoryId, currencyId, delivery, description, downloadable, shopId, local_delivery_cost, modified_time, name, oldprice, picture, price, sales_notes, type, url, vendor) VALUES (:available, :categoryId, :currencyId, :delivery, :description, :downloadable, :shopId, :local_delivery_cost, :modified_time, :name, :oldprice, :picture, :price, :sales_notes, :type, :url, :vendor)"); $stmt->bindParam(':available', $available); $stmt->bindParam(':categoryId', $categoryId); $stmt->bindParam(':currencyId', $currencyId); $stmt->bindParam(':delivery', $delivery); $stmt->bindParam(':description', $description); $stmt->bindParam(':downloadable', $downloadable); $stmt->bindParam(':shopId', $shopId); $stmt->bindParam(':local_delivery_cost', $local_delivery_cost); $stmt->bindParam(':modified_time', $modified_time); $stmt->bindParam(':name', $name); $stmt->bindParam(':oldprice', $oldprice); $stmt->bindParam(':picture', $picture); $stmt->bindParam(':price', $price); $stmt->bindParam(':sales_notes', $sales_notes); $stmt->bindParam(':type', $type); $stmt->bindParam(':url', $url); $stmt->bindParam(':vendor', $vendor); } catch(PDOException $e) { echo "Prepare failed: " . $e->getMessage(); } // первая строка с названиями столбцов не нужна fgets($handle); while (($data = fgetcsv($handle, 100000, ";")) !== FALSE) { // присваиваем параметрам значения и выполняем запрос $available = $data[0]; $categoryId = $data[1]; $currencyId =$data[2]; $delivery = $data[3]; $description = $data[4]; $downloadable = $data[5]; $shopId = $data[6]; $local_delivery_cost = $data[7]; $modified_time = $data[8]; $name = $data[9]; $oldprice = $data[10]; $picture = $data[11]; if (isset($data[12])) { $price = $data[12]; } else { $price = ""; }; if (isset($data[13])) { $sales_notes = $data[13]; } else { $sales_notes = ""; } if (isset($data[14])) { $type = $data[14]; } else { $type = ""; } $url = $data[15]; $vendor = $data[16]; try { $stmt->execute($data); echo "Data inserted"; } catch(PDOException $e) { echo "Data is not inserted: " . $e->getMessage(); } } fclose($handle); $conn = null; }

Похожие статьи
Программирование на PHP
Массивы в PHP
Циклы в PHP
Дата и время в PHP - основы
Как отобразить время различных часовых поясов PHP
Как вставить переменную в ссылку PHP
json_decode
Как получить ширину экрана с помощью PHP
Вызов функции из другого файла
Premature end of chunk coded message body: closing chunk expected
Сгенерировать неповторяющиеся случайные числа PHP
Узнать свой HTTP_USER_AGENT
Сравнить две даты
Классы в PHP 8
Комментарии в PHP
Работа с базами данных
Работа с cookies
PHP sessions
Аутентификация и авторизация в PHP 8