Клас за управление на MySQL бази данни с MySQLi и pHp

Съдържание
The MySQLi разширение е драйвер за релационна база данни, използва се в езика за програмиране на pHp за предоставяне на интерфейс с MySQL бази данни.
Предимства на използването на MySQLi
Подготвени изявления: по -лесно е да създавате заявки, предлага много сигурност срещу SQL инжектиране, с функцията:
 $ mysqli-> подгответе ();
Множество запитвания или запитвания
Възможност за изпълнение на няколко заявки или заявки във връзка.
Пример
 $ sqla = "SELECT * от клиенти;" $ sqlb. = "SELECT*FROM фактури ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb) 
Обектно ориентиран
Тази функция на MySQLi позволява на разработчика да използва обекти, за да подобри използването, производителността и видимостта на изходния код.
Драйверът за разширение MySQLi се използва в езика за програмиране на PHP за предоставяне на интерфейс към MySQL бази данни. Разработчиците на езика за програмиране PHP препоръчват използването на MySQLi, когато става въпрос за версии на MySQL сървър 4.1.3 и по -нови.
Ще създадем клас за използване от pHp с методи и свойства за манипулиране или управление на всяка база данни.
Класът ще бъде следният:
 клас dbmysqli {// декларира променлива за връзка public $ connection; // Декларираме конструктора на публичната функция на класа __construct ($ host, $ user, $ password, $ db) {} // функция за създаване на таблици public function create table ($ sql) {} // Запазване на нови данни в база данни публична функция вмъкване ($ таблица, $ полеви данни) {} // Изтриване на данни от публичната функция на базата данни изтриване ($ таблица, $ полеви данни) {} обществена функция Актуализация ($ таблица, $ поле набор, $ поле състояние) {} / / Търсене на функция в таблица за търсене на обществена функция ($ table, $ fields) {}} 
MySQLi връзка и клас
За да свържем MySQLi сървъра, трябва да извикаме метода на конструктора и да изпратим четири аргумента, като името на хоста, като localhost, потребителско име, парола за база данни и името на базата данни.
В конструктора добавяме връзката към сървъра:
 публична функция __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); } 
Тогава ще го извикаме така:
 // Свързване със сървъра и базата данни $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb"); 
Определяме метода за динамично създаване на таблици:
 // Функция, която създава таблици публична функция createstable ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "Таблица е създадена"; } else {echo "Неуспешно: таблицата не е създадена". $ this-> connection-> error; }} 
След това ще го извикаме така, ще създадем sql заявката и ще извикаме функцията creartabla ():
 $ sql = ”ИЗТЪРНЕТЕ ТАБЛИЦА, АКО ИСНАВА„ клиенти “; СЪЗДАВАЙТЕ ТАБЛИЦА, АКО НЕ СЪЩЕСТВА `customers` (` customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) ”$ connectb -> creartabla ($ sql); 
Можем да видим от pHpMyAdmin как е създадена таблицата при изпълнение на php скрипт.

Определяме метода за вмъкване / запазване на данни
След това създаваме методите, наречени ABM или CRUD, които ще отговарят за управлението на данните в таблиците. За да изпратим параметри към всеки метод, ще използваме масив, където индексът на масива ще бъде полето на таблицата, а стойността на този индекс ще бъде данните за полето на таблицата. Всяко име на индекса трябва да бъде затворено в двойни кавички и стойността трябва да отговаря на следните правила:
  • Стойностите на низовете трябва да имат единични кавички. Пример "име" => "Мария"
  • Числовите стойности не трябва да имат кавички. Пример "цена" => 10.50
  • Думата NULL ИЛИ празен не трябва да има кавички. Пример "цена" => NULL
 // Създаваме функцията, която ще вземе като параметър полето на масива => данни публична функция вмъкване ($ таблица, $ поле данни) {// разделяме данните, ако има няколко $ field = implode (",", array_keys ($ полеви данни)); $ i = 0; foreach ($ data fields as $ index => $ value) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ data = implode (",", $ data); // Вмъкваме стойностите във всяко поле, ако ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Нов клиент е вмъкнат"; } else {echo "Клиентът не е вмъкнат неуспешно". $ this-> connection-> error; }} 
Ние създаваме нашата матрица с данните, които могат да дойдат от формуляр:
 // Матрица с данни за вмъкване на $ customers = array ("name" => 'Carlos Moira', "name" => "Jose Triana", "name" => "Julia Ordoñez", "name" => "Carla Angelez" ); 
След това ще го извикаме така, извикваме функцията за вмъкване ("клиенти", $ клиенти) и добавяме параметрите:
 $ conedb -> вмъкване ("клиенти", $ клиенти);
Определяме метода за изтриване на данни
За да извършим операцията за изтриване, декларираме масив, където ще посочим кой ред или идентификатор искаме да изтрием.
 // функция за изтриване на данни от таблица публична функция delete ($ table, $ datafields) {$ i = 0; foreach ($ data fields as $ index => $ value) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ field и data = implode ("И", $ данни); if ($ this-> connection-> query ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Записът е изтрит"; } else {echo "Неуспешно, записът не може да бъде изтрит". $ this-> connection-> error;}} 
Ние създаваме нашата матрица с избраните данни за изтриване, които могат да дойдат от формуляр
 // Матрица с данни за изтриване $ customers delete = array ("customer id" => 1, "customer id" => 50, "customer id" => 8, "customer id" => 104); 
След това ще го извикаме така, извикваме функцията за изтриване ("клиенти", $ клиенти изтриване) и добавяме параметрите
 $ conectadb -> изтриване („клиенти“, $ клиенти изтриване);
Определяме метода за актуализиране на данните
За да актуализираме данните от реда, който трябва да променим, ще декларираме два асоциативни масива, единият ще бъде за промяна на полетата, а другият за условието където в SQL заявката. Правилата на матрицата трябва да се придържат към същия синтаксис, който определихме за матрицата от самото начало.
Като се има предвид синтаксисът за актуализация на MySQL:
 АКТУАЛИЗАЦИЯ НА КЛИЕНТИ ИМЕ = 'ново име' КЪДЕ clientid.id = idvalue; // Създаваме функцията, която ще вземе като параметър полето на масива => публична функция за данни Update ($ table, $ setfields, $ conditionfields) {// отделяме стойностите SET, за да променим $ i = 0; foreach ($ camposset като $ index => $ data) {$ набор от данни [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datoset); $ i = 0; foreach ($ conditionfields като $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("И", $ условие); // Актуализиране на записите if ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Записът е актуализиран"; } else {echo "Неуспешно, записът не може да бъде изтрит". $ this-> connection-> error;}} 
Създаваме нашия масив с SET данни, които ще бъдат полетата за актуализиране и нови стойности, също така създаваме масив за условието WHERE с идентификатора на записите за актуализиране, които могат да дойдат от формуляр:
 // Матрица от данни SET $ customersset = array ("name" => 'Carlos Juan Dolfo', "name" => "Pedro Dorien Triana", "name" => "Enrique Ordoñez", "name" => 'Carla Dolores Анджелис “); $ customerswhere = array ("customerid" => 1, "customerid" => 2, "customerid" => 5, "customerid" => 10); 
След това ще го извикаме така, извикваме функцията Update ("клиенти", $ customersset, $ customerswhere) и добавяме параметрите към нея.
 $ dbconnect-> Актуализиране ("клиенти", $ clientsset, $ clientsсв.);
Във всички заявки използваме естествената функция MySQLi за откриване на грешки $ mysqli-> грешка, което ще покаже съобщение за грешка за всяка SQL заявка или MySQLi функция, които може да са били изпълнени и неуспешни, така че можем да знаем защо е възникнала грешката.
Определяме метода за търсене на данни
За да получим данните от таблицата, създаваме метод на заявка с два параметъра, единият е името на таблицата, а другият е масив, който съдържа името на колоните и стойността, която трябва да се търси.
Можем да посочим типа матрица на резултатите, която да получим. Възможните стойности за този параметър са константи MYSQLI_ASSOC, MYSQLI_NUM.
Тип масив MYSQLI_ASSOC
 Масив {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'} 
Тип масив MYSQLI_NUM
 Масив {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} търсене на обществени функции ($ table, $ fields) {$ fields = implode (",", $ fields); $ result = $ this-> connection-> query ("SELECT $ fields FROM $ table"); връщане на $ резултат-> fetch_all (MYSQLI_ASSOC); } 
Ние създаваме нашата матрица с данните за търсене, които могат да дойдат от форма:
 // Масив от данни за търсене $ clients search = array ("client id", "name"); 
След това ще го извикаме така, извикваме функцията за търсене ("клиенти", $ customers search) и добавяме параметрите:
 $ connectdb -> търсене ($ таблица, $ клиенти търсене);
Тази функция връща a рекорсет че ще трябва да преминем през масив, за да видим данните за всяко поле:Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave