ConnectionMSi — Conexão prática com banco de dados

Sempre utilizei classes alheias open source, para a conexão com banco de dados dos meus projetos, porém elas nunca me satisfaziam totalmente, sempre o que tinha em uma, faltava em outra e vice-versa. E eu sempre projetava a minha, mas nunca realizava, até que em uma tarde ensolarada de inverno a inspiração veio e saiu o ConnectionMSi.

A classe contém todos os métodos padrões do MySQLi e alguns novos que eu implementei, além de alguns alias para melhor praticidade. Vou lista-los aqui e a seguir estarei falando sobre cada um, são eles:

INSTANCE

Os parâmetros de instância são os mesmos da classe MySQLi, na mesma sequência.

CREATE

O método Create tem os seguintes parâmetros, na seguinte ordem:

  1. table
  2. fields
  3. primaryKey
  4. engine
  5. drop
  6. charset
  7. collate

1. table – string
Nome da tabela.

2. fields – array
Colunas da tabela, em um array scheme:

Nota¹: O campo PK boolean seta um campo como PRIMARY KEY
Nota²: O campo NULL boolean permite que o campo seja nulo (true) ou não nulo (false), mesmo que NULL e NOT NULL na sintaxe SQL.

3. primaryKey – string / array
Campos chaves, pode ser um único campo com o valor string ou pode ser um array com todos os campos que compõem a chave.

4. engine – string
É a Storage Engine da tabela, mais detalhes em MySQL Docs.

5. drop – boolean
Informa se é pra excluir a tabela antes de criar caso exista, mesmo método DROP.

6. charset – string
Conjunto de caracteres, mais detalhes em MySQL Docs.

7. collate – string
Não sei bem a aplicação, mas é uma configuração referente ao charset, mais detalhes em MySQL Docs.

DROP

Único parâmetro é o nome da tabela.

INSERT

 

O método Insert possui dois parâmetros:

  1. table
  2. data

1. table – string
Nome da tabela.

2. data – array
O esquema do array é  Array('coluna' => 'valor') .

DELETE

 

O método Delete também possui apenas dois parâmetros, onde o primeiro é o nome da tabela e o segundo o Where, que estarei falando mais a frente.

UPDATE

 

O método Update possui três parâmetros, sendo o primeiro o nome da tabela, o segundo os dados que são passados assim como no Insert e o where assim como no Delete.

SELECT

 

O método Select possui quatro parâmetros, sendo eles:

  1. table
  2. where
  3. cols
  4. limit

tablewhere são os mesmos dos métodos anteriores, já o cols são as colunas retornadas, por padrão ele busca todas  * . E o método limit é o limite de registro retornado  $limit = '5, 5';, por padrão não é aplicado.

O método Select retorna o objeto result da classe MySQLi, para mais informações consulte o Manual do PHP.

 ExecuteSQL

 

O método ExecuteSQL é usado por todos os outros métodos de execução de sql, eles apenas preparam o SQL e manda para o ExecuteSQL. É recomendado utiliza-lo para a execução de query’s genéricas e também por padronização de código, mas ele é apenas um Alias do  mysqli::query($sql) .

Transaction (Begin, Rollback, Commit)

 

Acredito que esses métodos são auto-explicativos.

WHERE

Where não é um método e sim um parâmetro, mas que merece um tópico só pra ele. Este é um dos principais motivos para eu criar minha própira classe de conexão. Muitas classes que eu encontrei tinha todos os métodos Update, Delete, Select onde possuíam o parâmetro where, porém muito pobres, asseitavam apenas um array onde concatenavam  coluna = valor AND coluna = valor e eu precisava de algo a mais, então fiz assim:

 

Esses são os tipos de declaração WHERE atualmente, e em um futuro próximo pretendo adicionar adicionado a opção  OR e LIKE dia 24/08/2014.

Acredito que escrevi uma boa documentação, dúvidas e sugestões, os comentários serve para isso. O projeto está no GitHub sob uma licença GPL v2, usem, abusem, compartilhem só não vendam! 😀

Carlos Amaral

Programador, entusiasta da tecnologia, admirador da cultura japonesa e cristão protestante. Nascido em Porangatu interior de Goiás, cursou Sistemas de Informações tendo que abandonar na metade para uma mudança geográfica. Veio parar em Joinville - SC, capital da dança, onde atualmente está trabalhando com programação web e constituindo família.