Classe para gerenciar bancos de dados MySQL com MySQLi e pHp

Índice
O Extensão MySQLi é um driver de banco de dados relacional, ele é usado na linguagem de programação pHp para fornecer uma interface com bancos de dados MySQL.
Vantagens de usar MySQLi
Instruções preparadas: é mais fácil criar consultas, oferece muita segurança contra injeção de SQL, com a função:
 $ mysqli-> prepare ();
Várias perguntas ou consultas
Possibilidade de executar várias consultas ou consultas em uma conexão.
Exemplo
 $ sqla = "SELECT * dos clientes;" $ sqlb. = "SELECT * FROM invoices ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb) 
Orientado a Objeto
Este recurso do MySQLi permite ao desenvolvedor usar objetos para melhorar o uso, desempenho e visibilidade do código-fonte.
O driver MySQLi Extension é usado na linguagem de programação PHP para fornecer uma interface para bancos de dados MySQL. Os desenvolvedores da linguagem de programação PHP recomendam o uso do MySQLi quando se trata das versões 4.1.3 e posteriores do servidor MySQL.
Vamos criar uma classe para usar a partir do pHp com métodos e propriedades para manipular ou gerenciar qualquer banco de dados.
A aula será a seguinte:
 class dbmysqli {// declara uma variável para conexão public $ connection; // Declaramos o construtor da classe public function __construct ($ host, $ user, $ password, $ db) {} // função para criar tabelas public function create table ($ sql) {} // Salvar novos dados no banco de dados public function insert ($ table, $ field data) {} // Excluir dados do banco de dados public function delete ($ table, $ field data) {} public function Update ($ table, $ field set, $ field condition) {} / / function Pesquisa em uma tabela de pesquisa de função pública ($ table, $ fields) {}} 
Conexão e classe MySQLi
Para conectar o servidor MySQLi, devemos invocar o método construtor e enviar quatro argumentos são o nome do host, como localhost, nome de usuário, senha do banco de dados e o nome do banco de dados.
No construtor, adicionamos a conexão ao servidor:
 função pública __construct ($ host, $ user, $ password, $ db) {$ this-> conexão = new mysqli ($ host, $ user, $ clav); } 
Então, vamos invocá-lo assim:
 // Conectando ao servidor e ao banco de dados $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb"); 
Definimos o método para criar tabelas dinamicamente:
 // Função que cria tabelas public function createstable ($ sql) {if ($ this-> conexão-> consulta ($ sql) === TRUE) {echo "Uma tabela foi criada"; } else {echo "Falha: tabela não criada". $ this-> conexão-> erro; }} 
Então, vamos invocá-lo assim, criar a consulta sql e invocar a função creartabla ():
 $ sql = ”DROP TABLE IF EXISTS` clients`; CRIAR TABELA SE NÃO EXISTIR `clientes` (` clientid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) ”$ connectb -> creartabla ($ sql); 
Podemos ver a partir do pHpMyAdmin como a tabela foi criada ao executar o script php.

Nós definimos o método para inserir / salvar dados
A seguir, criamos os métodos chamados ABM ou CRUD, que se encarregarão de gerenciar os dados nas tabelas. Para enviar parâmetros para cada método usaremos um array onde o índice do array será o campo da tabela e o valor desse índice serão os dados para o campo da tabela. Cada nome de índice deve ser colocado entre aspas duplas e o valor deve atender às seguintes regras:
  • Os valores da string devem ter aspas simples. Exemplo "nome" => 'Maria'
  • Os valores numéricos não devem conter aspas. Exemplo "preço" => 10,50
  • A palavra NULL OU vazio não deve conter aspas. Exemplo "preço" => NULL
 // Criamos a função que tomará como parâmetro o array field => data public function insert ($ table, $ field data) {// separamos os dados se houver vários $ field = implode (",", array_keys ($ dados de campo)); $ i = 0; foreach ($ data fields as $ index => $ value) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ data = implode (",", $ data); // Inserimos os valores em cada campo if ($ this-> conexão-> consulta ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Novo cliente inserido"; } else {echo "O cliente não foi inserido falhou". $ this-> conexão-> erro; }} 
Criamos nossa matriz com os dados que podem vir de um formulário:
 // Matriz de dados para inserir $ clientes = array ("nome" => 'Carlos Moira', “nome” => 'José Triana', “nome” => 'Julia Ordoñez', “nome” => 'Carla Angelez' ); 
Em seguida, iremos invocá-lo assim, invocaremos a função insert ("clientes", $ clientes) e adicionaremos os parâmetros:
 $ conedb -> insert ("clientes", $ clientes);
Nós definimos o método para deletar dados
Para realizar a operação de exclusão, declaramos um array onde indicaremos qual linha ou id queremos excluir.
 // função para deletar dados de uma tabela public function delete ($ table, $ datafields) {$ i = 0; foreach ($ data fields as $ index => $ value) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ campo e dados = implode ("AND", $ dados); if ($ this-> conexão-> consulta ("EXCLUIR DE $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> conexão)) {echo "Registro excluído"; } else {echo "Falha, o registro não pôde ser excluído". $ this-> conexão-> erro;}} 
Nós criamos nossa matriz com os dados selecionados para deletar que podem vir de um formulário
 // Matriz de dados para excluir $ customers delete = array ("id do cliente" => 1, ”id do cliente” => 50, “id do cliente” => 8, “id do cliente” => 104); 
Em seguida, iremos invocá-lo assim, invocaremos a função delete ("customers", $ customers delete) e adicionaremos os parâmetros
 $ conectadb -> deletar (“clientes”, $ clientes deletar);
Nós definimos o método para atualizar os dados
Para atualizar os dados da linha que precisamos modificar, vamos declarar duas matrizes associativas, uma será para os campos a serem modificados e a outra para a condição Onde na consulta SQL. As regras da matriz devem seguir a mesma sintaxe que definimos para a matriz desde o início.
Considerando a sintaxe de atualização do MySQL:
 ATUALIZAR Clientes SET name = 'newname' WHERE clientid.id = idvalue; // Criamos a função que tomará como parâmetro o array field => data public function Update ($ table, $ setfields, $ conditionfields) {// separamos os valores SET para modificar $ i = 0; foreach ($ camposset as $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datoset); $ i = 0; foreach ($ conditionfields as $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("AND", $ condição); // Atualizar registros if ($ this-> conexão-> consulta ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> conexão)) {echo "Registro atualizado"; } else {echo "Falha, o registro não pôde ser excluído". $ this-> conexão-> erro;}} 
Criamos nosso array com os dados SET que serão os campos a atualizar e novos valores, também criamos um array para a condição WHERE com o id dos registros a atualizar que podem vir de um formulário:
 // Matriz de dados SET $ customersset = array ("nome" => 'Carlos Juan Dolfo', “nome” => 'Pedro Dorien Triana', “nome” => 'Enrique Ordoñez', “nome” => 'Carla Dolores Angeles '); $ customerswhere = array ("customerid" => 1, ”customerid” => 2, “customerid” => 5, “customerid” => 10); 
Em seguida, vamos invocá-lo assim, invocar a função Update ("customers", $ customersset, $ customerswhere) e adicionar os parâmetros a ela.
 $ dbconnect-> Update ("clientes", $ clientsset, $ clientswhere);
Em todas as consultas, usamos a função nativa do MySQLi para detectar erros $ mysqli-> erro, que mostrará uma mensagem de erro para qualquer consulta SQL ou função MySQLi que possa ter sido executada e falhou, para que possamos saber por que o erro ocorreu.
Nós definimos o método para pesquisar dados
Para obter os dados da tabela criamos um método de consulta com dois parâmetros, um é o nome da tabela e o outro é um array que contém o nome das colunas e o valor a ser pesquisado.
Podemos indicar o tipo de matriz de resultado a ser obtida. Os valores possíveis para este parâmetro são as constantes MYSQLI_ASSOC, MYSQLI_NUM.
Tipo de matriz MYSQLI_ASSOC
 Matriz {nome => 'Carlos Juan Dolfo', nome ”=> 'Enrique Ordoñez'} 
Tipo de matriz MYSQLI_NUM
 Array {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} pesquisa de função pública ($ table, $ fields) {$ fields = implode (",", $ fields); $ result = $ this-> connection-> query ("SELECT $ fields FROM $ table"); retornar $ result-> fetch_all (MYSQLI_ASSOC); } 
Criamos nossa matriz com os dados de pesquisa que podem vir de um formulário:
 // Matriz de dados para pesquisar $ clients search = array ("client id", ”name”); 
Em seguida, vamos invocá-lo assim, invocamos a função de pesquisa ("clientes", $ pesquisa de clientes) e adicionamos os parâmetros:
 $ connectdb -> search ($ table, $ clients search);
Esta função retorna um recorset que teremos que percorrer como uma matriz para ver os dados de cada campo:Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave