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; }

Автор статьи: Андрей Олегович

Похожие статьи
DB
PDO

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: