Noções básicas de trabalho com MySQL em PHP. Enviando consultas de banco de dados em PHP Conectando-se a um servidor MySQL

Noções básicas de trabalho com MySQL em PHP. Enviando consultas de banco de dados em PHP Conectando-se a um servidor MySQL

Lembro-me daqueles tempos em que ainda não sabia o que era mysql e frequentemente pesquisei esses artigos na Internet. Mas por alguma razão eles raramente eram encontrados. Agora decidi postar um para que haja artigos úteis sobre mysql E php há mais um. Tentarei escrever tudo em uma linguagem acessível.

começando com mysql e php

Então, primeiro precisamos de um servidor local para poder rodar scripts php e conecte-se ao banco de dados (doravante o chamarei de DB, que significa “banco de dados”). Se você ainda não possui um servidor local, leia primeiro Instalação e Configuração host local, e então comece a estudar o banco de dados mysql e seu SGBD (ferramenta de gerenciamento de banco de dados).

Se você já possui este servidor, faça isso. Primeiro, quero apresentar a você o SGBD PhpMyAdmin, permite gerenciar (adicionar, excluir, alterar) registros no banco de dados.

Esta é a página principal SGBD PhpMyAdmin. A partir daqui você pode criar seu próprio banco de dados e armazenar nele os registros necessários. Isto é muito cómodo na hora de criar sites, pois a informação é estruturada e pode obter muito rapidamente qualquer registo da base de dados.

Como já mencionado, a primeira parte do artigo, introdução ao mysql E phpmyadmin. Acho que agora você entende o que é mysql e podemos começar a estudar a funcionalidade do phpmyadmin. Para começar, precisaremos criar o próprio banco de dados. Ela terá seu próprio nome, pelo qual iremos procurá-la.

Aqui está a estrutura geral do banco de dados:

Para criar um banco de dados, insira no campo de entrada abaixo da linha “Criar um novo banco de dados” (na página principal do PhpMyAdmin) qualquer nome (não cirílico!) para o futuro banco de dados. Vou criar um banco de dados chamado “baza”. Agora, seguindo o diagrama da estrutura do banco de dados, precisamos fazer uma tabela. Para isso, após criar o banco de dados, você terá a seguinte janela:

Aqui estou criando uma tabela chamada users e 3 campos nela. A seguir, o phpmyadmin nos pedirá para definir a estrutura de cada campo:

Aqui na coluna “Campo” você precisa indicar o nome, no “Tipo” indicamos o tipo de dado que será armazenado ali (INT é um número, VARCHAR é uma string ou texto pequeno(!)). Em “Avançado” indicamos para o campo denominado “id” o parâmetro “auto_increament”, o que significa que aumentará cada vez que algum dado for inserido, e definimos nele o parâmetro “Chave primária” (coloque um círculo), isso significa que de acordo com a primeira coluna podemos identificar o campo de forma única.

“Identificar o campo de forma exclusiva” significa que mesmo que o nome e o sobrenome sejam iguais, a coluna “id” terá valores diferentes (já que é incrementada automaticamente em um a cada vez).

Agora clique em “Salvar”. Assim, criamos a tabela de usuários, na qual podemos armazenar o nome e o sobrenome (não há necessidade de inserir o id, o mysql fará tudo por nós), no banco de dados de usuários. Criamos uma tabela para armazenar registros. Como inseri-los aí? Leia abaixo 😉

Selecione “Inserir” no menu e escreva os valores necessários nos campos obrigatórios. Agora como deletar ou alterar valores no banco de dados mysql com o SGBD PhpMyAdmin... Para deletar, basta ir ao menu “Browse” e clicar na cruz vermelha ao lado da entrada:

E para editar, clique no lápis e substitua os campos obrigatórios. Bem, este é o fim da lição. Agora você pode gerenciar o banco de dados MySQL usando PhpMyAdmin. Na próxima lição, ensinarei como armazenar, recuperar, excluir e atualizar dados no banco de dados usando php. É muito conveniente e prático.

Trabalhando com banco de dados mysql a partir de php

Então, primeiro você precisa aprender como se conectar a um banco de dados já criado. Para fazer isso, use o seguinte código:

No código acima, conectei-me ao servidor localhost usando o login raiz que não requer senha (por isso não a especificamos). Após conectar-se ao banco de dados, podemos realizar todas as operações que realizamos no SGBD phpmyadmin. Ou seja, inserir, excluir, alterar e recuperar informações diversas. Agora ponto por ponto:

Inserindo registros em um banco de dados SQL em php

$query="INSERT INTO `table` (`especificar campo`,`especificar campo`) VALUES ("qualquer valor","qualquer valor""); $resultado=mysql_query($query); if($resultado==true) ( ​​echo "Sucesso!"; ) else ( echo "Erro!
".mysql_error(); )

Ou seja, a inserção é realizada pela função INSERT. Se tudo correr bem, o mysql retornará o resultado verdadeiro, ou caso contrário - falso.

Você pode especificar quantos campos quiser, o principal é que todos existam no banco de dados. Ou seja, por exemplo, existe uma tabela na qual existem os campos “nome”, “sobrenome” e “cidade”. Para inserir valores nele usaremos o seguinte código:

$query="INSERT INTO `users` (`nome`,`sobrenome`,`cidade`) VALORES ("Ruslan","Huzin","Kokshetau""); $resultado=mysql_query($query); if($resultado==true) ( ​​echo "Sucesso!"; ) else ( echo "Erro!
".mysql_error(); )

Excluindo registros do banco de dados SQL em php

A exclusão é realizada usando a função DELETE. O código para isso seria algo assim:

$query="DELETE FROM `users` WHERE `name`="Ruslan" "; $resultado=mysql_query($query); if($resultado==true) ( ​​echo "Sucesso!"; ) else ( echo "Erro!
".mysql_error(); )

Ou seja, excluiremos da tabela de usuários todas as linhas (ou uma) onde a coluna nome for igual ao valor Ruslan.

Alterando valores no banco de dados MySQL em php

Também podemos fazer alterações nas entradas existentes na tabela. Por exemplo, precisamos substituir o valor da coluna nome em uma linha onde a coluna sobrenome possui o valor Huzin. Para fazer isso executamos o seguinte código:

$query="UPDATE `users` SET `nome`="meunome" WHERE `sobrenome`="Huzin" "; $resultado=mysql_query($query); if($resultado==true) ( ​​echo "Sucesso!"; ) else ( echo "Erro!
".mysql_error(); )

Obtendo valores do banco de dados

Agora vem a parte divertida. Já que anotamos algo, devemos recuperá-lo, certo? Por exemplo, precisamos obter a linha inteira da tabela de usuários onde a coluna do nome é igual a Ruslan. Para fazer isso, precisamos de um código ligeiramente diferente do dos primeiros exemplos. Aqui está:

$query="SELECT * FROM WHERE `nome`="Ruslan" "; $resultado=mysql_query($query); if($resultado==true) ( ​​echo "Sucesso!"; ) else ( echo "Erro!
".mysql_error(); ) $data=mysql_fetch_array($result); /* Agora a variável armazena dados da tabela */

Aqui precisávamos de mais uma função para escrever os dados selecionados em uma variável (array) em php. Para acessar a linha selecionada, escrevemos assim:

$dados["nome da coluna"]

ou seja, para obter o sobrenome da linha selecionada (onde o nome era Ruslan), devemos escrever como saída:

echo $dados["sobrenome"];

E ao selecionar em uma tabela, eles escreveram SELECT * , esse asterisco significa que você precisa selecionar todas as colunas da linha. Se precisarmos, por exemplo, selecionar apenas o sobrenome, escrevemos SELECT `sobrenome`. E para selecionar várias linhas da tabela de uma vez, você também precisará de um loop para exibi-las. Este é o caso se, por exemplo, houver várias linhas com a coluna Ruslan. Aqui está o código:

$query="SELECT * FROM WHERE `nome`="Ruslan" "; $resultado=mysql_query($query); while($data=mysql_fetch_array($resultado)) ( echo $data["nome"]."
".$dados["sobrenome"]."


"; }

Agora todas as linhas cujo nome da coluna for igual ao valor Ruslan serão exibidas na tela.

Agora você está familiarizado com as funções básicas de controle banco de dados mysql diretamente de script php.

SGBD MySQLé um dos muitos bancos de dados suportados em PHP. O sistema MySQL é distribuído gratuitamente e tem potência suficiente para resolver problemas reais.

Uma breve introdução ao MySQL

SQLé uma abreviatura para as palavras Linguagem de consulta estruturada, que significa Linguagem de Consulta Estruturada. Esta linguagem é uma ferramenta padrão para acessar diversos bancos de dados.

O sistema MySQL é um servidor ao qual usuários em computadores remotos podem se conectar.

Para trabalhar com bancos de dados, é conveniente utilizar a ferramenta incluída no kit do desenvolvedor Web: Denwer phpMyAdmin. Aqui você pode criar um novo banco de dados, criar uma nova tabela no banco de dados selecionado, preencher a tabela com dados e adicionar, excluir e editar dados.

O MySQL define três tipos básicos de dados: numérico, data e hora e string. Cada uma dessas categorias é dividida em vários tipos. Os principais:


Cada coluna contém outros especificadores após seu tipo de dados:

TipoDescrição
NÃO NULOTodas as linhas da tabela devem ter um valor neste atributo. Se não for especificado, o campo pode estar vazio (NULL)
INCREMENTO AUTOMÁTICOUm recurso especial do MySQL que pode ser usado em colunas numéricas. Se você deixar este campo em branco ao inserir linhas em uma tabela, o MySQL gerará automaticamente um valor de ID exclusivo. Este valor será um valor maior que o valor máximo já existente na coluna. Cada tabela não pode ter mais do que um desses campos. Colunas com AUTO_INCREMENT devem ser indexadas
CHAVE PRIMÁRIAA coluna é a chave primária da tabela. Os dados nesta coluna devem ser exclusivos. MySQL indexa automaticamente esta coluna
NÃO ASSINADODepois de um tipo inteiro significa que seu valor pode ser positivo ou zero
COMENTENome da coluna da tabela

Criando um novo banco de dados MySQL CRIAR BANCO DE DADOS.

CRIAR BANCO DE DADOS SE NÃO EXISTIR `base` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin

Criando uma nova tabela realizado usando o comando SQL CRIAR A TABELA. Por exemplo, a tabela de livros de uma livraria conterá cinco campos: ISBN, autor, título, preço e número de exemplares:

CREATE TABLE livros (ISBN CHAR(13) NOT NULL, PRIMARY KEY (ISBN), autor VARCHAR(30), título VARCHAR(60), preço FLOAT(4,2), quantidade TINYINT UNSIGNED); Para evitar mensagem de erro caso a tabela já exista, deve-se alterar a primeira linha adicionando a frase "IF NOT EXISTS": CREATE TABLE IF NOT EXISTS books...

Para criar campo de atualização automática com a data atual do tipo TIMESTAMP ou DATETIME, utilize a seguinte construção:

CREATE TABLE t1 (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

Adição dados nesta tabela são realizados usando o comando SQL INSERIR. Por exemplo:

INSERIR EM livros (ISBN, autor, título, preço, quantidade) VALORES ("5-8459-0184-7", "Zandstra Mat", "Domine o PHP4 sozinho em 24 horas", "129", "5") ;

Para recuperar dados de uma tabela, use o operador SELECIONAR. Ele recupera dados do banco de dados selecionando linhas que correspondem a um determinado critério de pesquisa. A instrução SELECT vem com várias opções e casos de uso.

O * indica que todos os campos são obrigatórios. Por exemplo:

SELECIONE * DOS livros;

Para acessar apenas um campo específico, você deve especificar seu nome na instrução SELECT. Por exemplo:

SELECIONE autor, título, preço DOS livros;

Para acessar um subconjunto de linhas em uma tabela, você deve especificar um critério de seleção que especifique a construção ONDE. Por exemplo, para selecionar livros baratos disponíveis sobre PHP, você precisa criar uma consulta:

SELECT * FROM books WHERE preço % Corresponde a qualquer número de caracteres, mesmo os nulos
_Corresponde exatamente a um caractere

Para garantir que as linhas recuperadas por uma consulta sejam listadas em uma ordem específica, a construção é usada ORDENAR POR. Por exemplo:

SELECIONE * DOS livros ORDENAR POR preço;

Padrão ordem Ordenação vai em ordem crescente. Você pode reverter a ordem de classificação usando uma palavra-chave DESC:

SELECIONE * DOS livros ORDENAR POR preço DESC;

Organizar Também é possível para várias colunas. Em vez de nomes de colunas, você pode usar seus números de série:

SELECIONE * DOS livros ORDENAR POR 4, 2, 3;

Para alterar os valores previamente registrados na tabela, é necessário utilizar o comando ATUALIZAR. Por exemplo, o preço de todos os livros aumentou 10%:

ATUALIZAR livros SET preço = preço * 1,1;

A cláusula WHERE limitará a operação UPDATE a determinadas linhas. Por exemplo:

ATUALIZAR livros SET preço = preço * 1,05 WHERE preço

Para remover linhas do banco de dados, use o operador EXCLUIR. As linhas desnecessárias são especificadas usando a cláusula WHERE. Por exemplo, alguns livros foram vendidos:

DELETE FROM livros WHERE quantidade = 0;

Se você precisar excluir todas as entradas

TRUNCATE TABLE nome_tabela

Para excluir completamente uma tabela, use:

DROP TABLE nome_tabela

Conectando PHP com banco de dados MySQL

Depois de trabalhar com o phpMyAdmin para criar o banco de dados, você pode começar a conectar o banco de dados à interface Web externa.

Para acessar um banco de dados da Web usando PHP, você precisa seguir os seguintes passos básicos:

  • Conectando-se ao servidor MySQL.
  • Selecionando um banco de dados.
  • Executando uma consulta ao banco de dados:
    • Adição;
    • eliminação;
    • mudar;
    • procurar;
    • Ordenação.
  • Obtendo o resultado da solicitação.
  • Desconecte-se do banco de dados.

Para conectar-se a um servidor de banco de dados em PHP existe uma função mysql_connect(). Seus argumentos são nome do computador, nome de usuário e senha. Esses argumentos podem ser omitidos. Por padrão, nome do computador = localhost , então nome de usuário e senha não são necessários. Se o PHP for usado em combinação com o servidor Apache, você poderá usar a função mysql_pconnect(). Neste caso, a conexão com o servidor não desaparece após o encerramento do programa ou a função ser chamada mysql_close(). Funções mysql_connect() E mysql_pconnect() retorne o ID da conexão se tudo tiver sido bem-sucedido. Por exemplo:

$link=mysql_pconnect(); if (!$link) die ("Não foi possível conectar ao MySQL");

Assim que a conexão com o servidor MySQL for estabelecida, você precisa selecionar um banco de dados. Para fazer isso, use a função mysql_select_db(). Seu argumento é o nome do banco de dados. A função retorna verdadeiro se o banco de dados especificado existir e puder ser acessado. Por exemplo:

$db = "amostra"; mysql_select_db($db) ou die("Não foi possível abrir $db");

Para adicionar, excluir, modificar e selecionar dados, você deve construir e executar uma consulta SQL. Existe uma função para isso em PHP mysql_query(). Seu argumento: uma string de consulta. A função retorna o ID da solicitação.

Exemplo 1

Adicionando uma entrada a uma tabela

Cada vez que o Exemplo 1 for executado, um novo registro será adicionado à tabela contendo os mesmos dados. Obviamente, faz sentido adicionar dados inseridos pelo usuário ao banco de dados.

O Exemplo 2.1 mostra um formulário HTML para adicionar novos livros ao banco de dados.

Exemplo 2.1

Formulário HTML para adicionar novos livros
ISBN
Autor
Nome
Preço
Quantidade

Os resultados do preenchimento deste formulário são enviados para insert_book.php.

Exemplo 2.2

Programa para adicionar novos livros (arquivo insert_book.php) Volte e termine de digitar"); ) $isbn = trim ($_POST["isbn"]); $author = trim ($_POST["author"]); $title = trim ($_POST["title" ] ) ; $isbn = addlashes ($isbn); $title = addlashes ($title) ; $db = "sample"; $link = mysql_connect(); ou morrer ("Não foi possível abrir $db"); $query = "INSERT INTO books VALUES ("" .$isbn."", "".$author. "", "".$title."", "" .floatval($_POST["preço"]).", "".intval($_POST["quantidade"])."")"; livro foi adicionado ao banco de dados."; mysql_close ($link ?>);

No exemplo 2.2, os dados da string inseridos são processados ​​pela função adiciona barras(). Esta função adiciona barras invertidas antes de aspas simples ("), aspas duplas ("), barra invertida (\) e bytes nulos. O fato é que, de acordo com os requisitos da systax de consulta ao banco de dados, tais símbolos devem ser colocados entre aspas.

Para determinar o número de registros como resultado de uma consulta, use a função mysql_num_rows().

Todos os registros de resultados de consulta podem ser visualizados em um loop. Antes de fazer isso, use a função mysql_fetch_ Para cada registro, é obtido um array associativo.

O Exemplo 3.1 mostra um formulário HTML para busca de livros específicos em um banco de dados.

Exemplo 3.1

Formulário de pesquisa de livros em HTML
Pesquisando por:

O que você está procurando:

Os resultados do preenchimento deste formulário são enviados para search_book.php.

Exemplo 3.2

Por favor volte e termine de digitar"); $searchterm = addlashes ($searchterm); $link = mysql_pconnect(); if (!$link) die("Não foi possível conectar ao MySQL"); $db = "sample"; mysql_select_db ($db) ou die("Não foi possível abrir $db"); $query = "SELECT * FROM livros WHERE " .$_POST["searchtype"]." como "%".$searchterm."%""; $resultado = mysql_query ($query); $n = mysql_num_rows ($resultado); for ($i=0; $i<$n; $i++) { $row = mysql_fetch_array($result); echo "

".($i+1). $row["título"]. "



"; ) if ($n == 0) echo "Não temos nada a oferecer. Desculpe"; mysql_close($link); ?>

Opção alternativa

Programa de busca de livros (arquivo search_book.php) Por favor volte e termine de digitar"); $searchterm = addlashes ($searchterm); mysql_connect() ou die ("Não foi possível conectar ao MySQL"); mysql_select_db ("sample") ou die ("Não foi possível abrir o banco de dados") ; $ resultado = mysql_query("SELECT * FROM livros WHERE ".$_POST["searchtype"].." like "%".$searchterm."%""); eco "

".($i++). $row["título"]."
"; echo "Autor: ".$row["autor"]."
"; echo "ISBN: ".$row["ISBN"]."
"; echo "Preço: ".$row["preço"]."
"; echo "Quantidade: ".$row["quantidade"]."

"; ) if ($i == 1) echo "Não temos nada a oferecer. Desculpe"; mysql_close(); ?>

Então, como funciona a arquitetura de banco de dados da Web:

  1. O navegador da Web do usuário emite uma solicitação HTTP para uma página da Web específica. Por exemplo, um usuário que usa um formulário HTML pesquisa todos os livros sobre PHP. A página de processamento do formulário é chamada search_book.php.
  2. O servidor web recebe uma solicitação para search_book.php, recupera esse arquivo e o repassa ao mecanismo PHP para processamento.
  3. PHP se conecta ao servidor MySQL e envia a solicitação.
  4. O servidor aceita uma solicitação de banco de dados, processa-a e envia o resultado (uma lista de livros) de volta ao mecanismo PHP.
  5. O mecanismo PHP finaliza a execução do script e formata o resultado da solicitação em HTML. Depois disso, o resultado em forma de HTML é retornado ao servidor Web.
  6. O servidor Web encaminha o HTML para o navegador e o usuário pode visualizar a lista de livros solicitada.

Usando o mecanismo de transação

Usando o mecanismo de transação como exemplo de como transferir dinheiro de uma pessoa para outra

If(mysql_query ("BEGIN") && mysql_query ("UPDATE dinheiro SET amt = amt - 6 WHERE nome = "Eve"") && mysql_query ("UPDATE dinheiro SET amt = amt + 6 WHERE nome = "Ida"") && mysql_query ("COMMIT"))( echo "Sucesso"; )else( mysql_query ("ROLLBACK"); echo "Não foi bem-sucedido"; )

SELECIONE...PARA ATUALIZAÇÃO

Se você executar vários processos que fazem consultas selecionadas na mesma tabela, eles poderão selecionar o mesmo registro ao mesmo tempo.

Para evitar a situação acima mencionada, é necessário executar não apenas uma consulta SELECT, mas sua versão estendida, da qual muitos nem sabem: SELECT ... FOR UPDATE.

Assim, ao executar esta consulta, todos os registros afetados no banco de dados ficarão bloqueados até que a sessão com o banco de dados seja concluída ou até que os dados do registro sejam atualizados. Outro script não poderá selecionar registros bloqueados até que ocorra uma das condições mencionadas.

Porém, nem tudo é tão simples. Você precisa cumprir mais algumas condições. Primeiro, sua tabela deve ser baseada na arquitetura InnoDB. Caso contrário, o bloqueio simplesmente não funcionará. Em segundo lugar, antes de realizar a seleção, você deve desabilitar o commit automático da consulta. Aqueles. em outras palavras, execução automática da solicitação. Depois de especificar a solicitação UPDATE, você precisará acessar o banco de dados novamente e confirmar as alterações usando o comando COMMIT:

TRABALHANDO COM UM BANCO DE DADOS MySQL COM FERRAMENTAS PHP

Palestra. Preparado por Prokhorov V.S.


1. CONECTANDO CENÁRIOS PHP com tabelas MySQL

Vejamos as funções mais comumente usadas que permitem trabalhar com um banco de dados MySQL usando PHP.

Quando PHP e MySQL interagem, o programa interage com o SGBD por meio de um conjunto de funções.

1.1 Conexão ao servidor. Funçãomysql_connect

Antes de trabalhar com o banco de dados, é necessário estabelecer uma conexão de rede com ele, bem como autorizar o usuário. A função mysql_connect() é usada para isso.

recurso mysql_connect(]])

Esta função estabelece uma conexão de rede com o banco de dados MySQL localizado no host $server (por padrão é localhost, ou seja, o computador atual) e retorna o identificador da conexão aberta. Todo o trabalho adicional é realizado com este identificador. Todas as outras funções que utilizam este identificador (handle) como argumento identificarão exclusivamente o banco de dados selecionado. Ao registrar-se, especifique o nome de usuário $username e a senha $password (por padrão, o nome de usuário a partir do qual o processo atual está sendo executado - ao depurar scripts: root e uma senha vazia):

$dbpasswd = ""; //Senha

//Mostra um aviso

eco("

");

As variáveis ​​$dblocation, $dbuser e $dbpasswd armazenam o nome do servidor, nome de usuário e senha.

1.2 Desconexão do servidor. Funçãomysql_close

A conexão com o servidor MySQL será fechada automaticamente quando o script for concluído ou quando a função mysql_close for chamada

bool mysql_close()

Esta função fecha a conexão com o servidor MySQL e retorna verdadeiro se a operação for bem-sucedida e falso caso contrário. A função toma como argumento o identificador de conexão do banco de dados retornado pela função mysql_connect.

$dblocation = "localhost"; //Nome do servidor

$dbuser = "raiz"; //Nome de usuário

$dbpasswd = ""; //Senha

//Conecta-se ao servidor de banco de dados

//Suprime a saída de erro com o símbolo @ antes de chamar a função

$dbcnx = @ mysql_connect($dblocation, $dbuser, $dbpasswd);

if (!$dbcnx) //Se o descritor for 0, a conexão não foi estabelecida

//Mostra um aviso

eco("

O servidor de banco de dados está indisponível no momento, portanto a página não pode ser exibida corretamente.");

if (mysql_close($dbcnx)) //fecha a conexão

echo("Conexão com o banco de dados encerrada");

echo("Não foi possível concluir a conexão");

1.3 Criando um banco de dados. Função CRIAR BANCO DE DADOS

O comando - criar um banco de dados está disponível apenas para o administrador do servidor e na maioria dos sites de hospedagem não pode ser executado:

CRIAR BANCO DE DADOSNomeBaseDeDados

Cria um novo banco de dados chamado DatabaseName.

Um exemplo de trabalho com esta função:

@mysql_query("CRIAR BANCO DE DADOS $dbname");

Recomenda-se usar apóstrofos (“SQL – comando”) em todos os lugares como delimitadores para linhas contendo comandos SQL. Isso garante que nenhuma variável $ seja interpolada acidentalmente (ou seja, substituída por seu valor) e aumenta a segurança do script.

O comando de criação de banco de dados CREATE DATABASE está disponível apenas para o superusuário, e na maioria dos sites de hospedagem é impossível para um simples usuário executá-lo. Está disponível apenas para o administrador do servidor.

Para experimentos, vamos criar um banco de dados testbase executando uma consulta SQL na linha de comando. Para fazer isso, você precisa fazer login no MySQL e inserir na linha de comando do MySQL:

mysql>criar base de teste de banco de dados;

Depois disso você deve digitar:

mysql>usar base de teste;

Banco de dados criado:


1.4 Selecionando um banco de dados. Funçãomysql_select_db

Antes de enviar a primeira solicitação ao servidor MySQL, devemos indicar com qual banco de dados iremos trabalhar. A função mysql_select_db foi projetada para isso:

bool mysql_select_db(string $database_name [,recurso $link_identifier])

Ele notifica o PHP que operações futuras na conexão $link_identifier usarão o banco de dados $database_name.

Usar esta função é equivalente a chamar o comando use em uma consulta SQL, ou seja, a função mysql_select_db seleciona um banco de dados para trabalho adicional e todas as consultas SQL subsequentes são aplicadas ao banco de dados selecionado. A função toma como argumentos o nome do banco de dados selecionado nome_dados_dados e o recurso do descritor de conexão. A função retorna verdadeiro se a operação foi bem-sucedida e falso caso contrário:

//Código de conexão do banco de dados

if (! @mysql_select_db($dbname, $dbcnx))

//Mostra um aviso

eco("

O banco de dados está indisponível no momento, portanto a página não pode ser exibida corretamente.");

1.5 Tratamento de erros

Se ocorrerem erros ao trabalhar com MySQL (por exemplo, os parênteses na consulta não estão balanceados ou não há parâmetros suficientes), então a mensagem de erro e seu número podem ser obtidos usando as duas funções descritas a seguir.

É importante usar essas funções com cuidado e rapidez, caso contrário, a depuração de scripts pode se tornar mais difícil.

● Função:

int mysql_errno()

retorna o número do último erro registrado. O identificador de conexão $link_identifier pode ser omitido se apenas uma conexão tiver sido estabelecida durante a execução do script.

● Função:

string mysql_error()

não retorna um número, mas uma string contendo o texto da mensagem de erro. É conveniente usar para fins de depuração. Normalmente mysql_error é usado junto com a construção or die(), por exemplo:

@mysql_connect("localhost", "usuário", "senha")

ou die("Erro ao conectar ao banco de dados: ".mysql_error());

O operador @, como sempre, serve para suprimir o aviso padrão que pode ocorrer em caso de erro.

Nas versões recentes do PHP, os avisos nas funções do MySQL não são registrados por padrão.

1.6 Automação de conexão ao MySQL. Arquivo (config.php)

Normalmente, existem vários scripts em um site que precisam de acesso ao mesmo banco de dados.

Recomenda-se separar o código responsável pela conexão ao MySQL em um arquivo separado e, em seguida, conectá-lo aos scripts necessários usando a função include.

Faz sentido colocar as funções de conexão, seleção e criação de um banco de dados no mesmo arquivo (config.php) onde são declaradas as variáveis ​​​​com nome do servidor $dblocation, nome de usuário $dbuser, senha $dbpasswd e nome do banco de dados $dbname:

Listagem config.php:

//código config.php do arquivo contendo parâmetros para conexão ao servidor e seleção de banco de dados

//envia mensagens de erro de conexão para o navegador

$dblocation = "localhost"; //Nome do servidor

$dbname = "inserir nome do banco de dados" //Nome do banco de dados: sendo criado ou existente

$dbuser = "raiz"; //Nome de usuário do banco de dados

$dbpasswd = ""; //Senha

//Conecta-se ao servidor de banco de dados

//Suprime a saída de erro com o símbolo @ antes de chamar a função

$dbcnx=@mysql_connect($dblocation,$dbuser,$dbpasswd);

if (!$dbcnx) //Se o descritor for 0, a conexão com o servidor de banco de dados não foi estabelecida

//Mostra um aviso

eco("

O servidor de banco de dados está indisponível no momento, portanto a página não pode ser exibida corretamente.

");

//Cria o banco de dados $dbname - apenas um superusuário pode fazer isso

//Se o banco de dados já existir, ocorrerá um erro não fatal

@mysql_query("CRIAR BANCO DE DADOS se não existir $dbname’);

//Código de conexão ao banco de dados: fazemos uma seleção inequívoca de um banco de dados recém-criado ou de um banco de dados existente

//Suprime a saída de erro com o símbolo @ antes de chamar a função

if(!@mysql_select_db($dbname, $dbcnx)) //Se o descritor for 0, a conexão com o banco de dados não foi estabelecida

//Mostra um aviso

eco("

O banco de dados está indisponível no momento, portanto a página não pode ser exibida corretamente.

");

//Pequena função auxiliar que imprime uma mensagem

//mensagem de erro em caso de erro de consulta ao banco de dados

função puterror($mensagem)

eco("");


2. EXECUÇÃO DE CONSULTAS A BANCO DE DADOS

2.1 Criando uma tabela. FunçãoCRIAR A TABELA:

CREATE TABLE TableName (tipo FieldName, tipo FieldName)

Este comando cria uma nova tabela no banco de dados com colunas (campos) definidas por seus nomes (FieldName) e tipos especificados. Depois de criar a tabela, você pode adicionar registros a ela consistindo nos campos listados neste comando.

Listagem test_11.php. Um programa que cria uma nova tabela em um banco de dados:

include "config.php";//Conecte-se ao servidor e selecione um banco de dados

mysql_query("CREATE TABLE se não existir pessoas

id INT AUTO_INCREMENT CHAVE PRIMÁRIA,

ou die("Erro MySQL: ".mysql_error());


Este script cria uma nova tabela people com dois campos. O primeiro campo possui tipo INT (inteiro) e nome id. O segundo é o tipo TEXT (string de texto) e o nome do nome.

Se a tabela existir, a construção or die() funcionará.

A cláusula opcional if not exist, quando especificada, informa ao servidor MySQL que ele não deve gerar uma mensagem de erro se já existir uma tabela com o nome especificado no banco de dados.

Para aproveitar ao máximo seu banco de dados MySQL, é importante entender como conectar um programa PHP personalizado a um banco de dados MySQL.

Este tutorial descreve os três métodos a seguir junto com um programa de exemplo PHP correspondente que explicará como conectar-se usando PHP a um banco de dados.

  • Conecte-se usando a extensão Mysqli (recomendado)
  • Conecte-se usando PDO (recomendado)
  • Conectando-se usando funções mysql_ herdadas tradicionais (obsoleto)

Para fazer isso, você precisa instalar o pacote PHP-MySQL.

Com base na distribuição RedHat incluindo , use yum para instalar o PHP-MySQL conforme mostrado abaixo.

Yum instale o php-mysql

Dependendo do seu sistema, instalaremos ou atualizaremos as seguintes dependências acima:

  • php-cli
  • php-comum
  • php-pdo
  • php-pgsql

Depois que tudo estiver instalado, a página phpinfo exibirá o módulo MySQL conforme mostrado abaixo:

Para todos os exemplos abaixo, estaremos nos conectando a um banco de dados MySQL que já existe. Se você é novo no MySQL, este é um bom lugar para começar: .

Nota: Tudo descrito aqui também funcionará com MariaDB, assim como funciona com MySQL.

1. Conexão em PHP usando a extensão Mysqli

MySQLi significa MySQL melhorado.

Observe que na maioria das distribuições (por exemplo: CentOS), o PHP-MySQLi já faz parte do pacote PHP-MySQL. Desta forma você não precisa procurar e instalar o pacote PHP-MySQLi. Tudo que você precisa fazer é instalar o pacote PHP-MySQL para obter uma extensão Mysqli funcional em seu sistema.

Crie o seguinte arquivo mysqli.php no DocumentRoot no Apache:

connect_error) ( die("Erro: Não foi possível conectar: ​​" . $conn->connect_error); ) echo "Conectando ao banco de dados.
"; $resultado = $conn->query("SELECT nome FROM funcionário"); echo "Número de linhas: $resultado->num_rows"; $resultado->close(); $conn->close(); ?>

Acima:

  • MySQLi – Esta função iniciará uma nova conexão usando a extensão Mysqli. Esta função receberá quatro argumentos:
    1. Nome do host onde o banco de dados MySQL está sendo executado
    2. Nome de usuário de conexão MySQL
    3. Senha do usuário Mysql
    4. Banco de dados MySQL ao qual se conectar.
  • Função de consulta – Use para especificar sua consulta MySQL. Neste exemplo, selecionamos a coluna nome do banco de dados de funcionários.
  • Finalmente, exibimos o número de linhas selecionadas usando a variável num_rows. Também fechamos a conexão conforme mostrado acima.

Conecte-se ao banco de dados. Número de linhas: 4

Nota: Se você estiver tentando se conectar a um banco de dados MySQL remoto, poderá fazer isso para evitar o erro de conexão de host negada: Como permitir que um cliente MySQL se conecte a um servidor MySQL remoto.

2. Conectando usando PHP ao MySQL com extensão PDO

DOP significa Objetos de Dados PHP.

PDO_MYSQL implementa a interface PDO fornecida pelo PHP para conectar um programa a um banco de dados MySQL.

Na maioria das distribuições Linux (como CentOS e RedHat), o pacote PHP-PDO já está incluído no pacote PHP-MySQL. Desta forma você não precisa procurar e instalar o pacote PHP-PDO. Tudo que você precisa fazer é instalar o pacote PHP-MySQL para obter uma extensão PHP PDO_MYSQL funcional em seu sistema.

Crie o seguinte arquivo MySQL-pdo.php em seu Apache DocumentRoot:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Conectando ao banco de dados.
"; $sql = "SELECIONE nome DO funcionário"; print "Nome do funcionário:
"; foreach ($conn->query($sql) as $row) ( print $row["nome"] . "
"; ) $conn = null; ) catch(PDOException $err) ( echo "Erro: Não foi possível conectar: ​​" . $err->getMessage(); ) ?>

Acima:

  • novo PDO – Criará um novo objeto PDO que receberá os três argumentos a seguir:
    1. String de conexão MySQL: estará no formato “mysql:host=$hostname;dbname=$dbname”. No exemplo acima, o banco de dados está rodando em localhost e estamos nos conectando ao banco de dados andreyex.
    2. Nome de usuário para se conectar ao MySQL.
    3. Senha do usuário mysql.
  • Variável $sql - Cria a consulta SQL que você deseja executar. Neste exemplo, selecionamos a coluna nome da tabela de funcionários.
  • query($sql) – aqui executamos a consulta SQL que acabamos de criar.
  • foreach – É aqui que executamos os comandos acima e os armazenamos na variável $string e depois os mostramos usando o comando print.
  • No MySQL PDO, para fechar uma conexão, basta redefinir a variável $conn para zero.

Ao chamar mysqli.php do seu navegador, você verá a seguinte saída, indicando que o PHP conseguiu se conectar ao banco de dados MySQL e buscar os dados.

Conecte-se ao banco de dados. Nome do funcionário: siteslan Maria Oleg

3. Conexão em PHP usando funções mysql_ (desatualizado)

Use este método apenas se estiver usando uma versão mais antiga do PHP e não puder atualizar para a nova versão por algum motivo.

Esta é uma extensão legada do PHP 5.5. Mas a partir da versão PHP 7.0, isso não funcionará, pois foi removido.

A partir do PHP 5.5, ao usar essas funções, elas gerarão um erro E_DEPRECATED.

Crie o seguinte arquivo MySQL-legacy.php no Apache DocumentRoot:

"; $resultado = mysql_query("SELECIONE nome DO funcionário"); $row = mysql_fetch_row($resultado); echo "Funcionário 1: ", $row, "
\n"; mysql_close($conn); ?>

Acima:

  • A função mysql_connect leva três argumentos: 1) o nome do host onde o banco de dados MySQL está sendo executado, 2) o nome de usuário para conectar-se ao MySQL, 3) a senha do usuário MySQL. Aqui nos conectamos ao banco de dados MySQL, que está rodando no servidor local, usando o nome de usuário root e sua senha.
  • Função mysql_select_db – Como o nome sugere, selecionará o banco de dados ao qual você deseja se conectar. Isso é equivalente ao comando "use". Neste exemplo estamos nos conectando ao banco de dados andreyex.
  • Função mysql_query – Use para especificar sua consulta MySQL. Neste exemplo, selecionamos a coluna nome do banco de dados de funcionários.
  • mysql_fetch_row – Use esta função para buscar linhas da consulta SQL que acabamos de criar.
  • Finalmente feche a conexão usando o comando mysql_close conforme mostrado acima.

Ao chamar MySQL-legacy.php em seu navegador, você verá a seguinte saída, indicando que o PHP conseguiu se conectar ao banco de dados MySQL e buscar os dados.

Conecte-se ao banco de dados. Funcionário 1: AndreyEx

Usando php...

Criando uma conexão de diferentes maneiras:

1) a maneira antiga de se conectar ao MySQL:

$conn=mysql_connect($db_hostname, $db_username, $db_password) ou die ("Sem conexão com o servidor");
mysql_select_db($db_database,$conn) ou die ("Não, não foi possível conectar ao banco de dados");

Explicações das variáveis ​​abaixo.

As seguintes funções são usadas:

  • mysql_connect()- para conectar-se ao servidor;
  • mysql_select_db()- para conectar-se ao banco de dados;

Ao mesmo tempo, verificamos constantemente se há erros desta forma: ou morremos (“O erro é tal e tal”); - traduzido como ou morrer com tal e tal erro - para descobrir imediatamente onde está o erro.

config.php

//variáveis ​​para conexão com o banco de dados
$host = "localhost"; /hospedar
$usuário = "root"; //senha para conexão com o banco de dados
$senha = ""; // senha para conexão ao banco de dados - no computador local pode estar vazia.
$database_name = "meu-dolgi"; // nome do banco de dados

// maneira antiga de conectar ao banco de dados
mysql_connect($host, $username, $password) or die("Não é possível conectar, criar conexão");

//selecione o banco de dados. Se houver um erro, imprima
mysql_select_db($database_name) ou die(mysql_error());

index.php

require_once "config.php";


$resultado = mysql_query("SELECT Nome, Money FROM Dolg ORDER BY Money DESC LIMIT 5") ou die(mysql_error());



";


while ($linha = mysql_fetch_assoc($resultado)) (
";
}


mysql_free_result($resultado);

//Fecha a conexão
mysql_close();

2) Um estilo processual mais progressivo - conectando-se ao banco de dados usando mysqli:

Este método:

  1. conveniente;
  2. até 40 vezes mais rápido;
  3. maior segurança;
  4. existem novos recursos e funções;

Um exemplo de conexão a um banco de dados em PHP com uma seleção de uma tabela

config.php

//conexões com o banco de dados
$link = mysqli_connect("localhost", "nome de usuário", "senha", "nome-banco de dados"); // aqui inserimos seus dados diretamente: nome de usuário, senha e nome do banco de dados, o primeiro campo geralmente é localhost

//erro de conexão de saída
se (!$link) (
echo "Erro ao conectar ao banco de dados. Código de erro: " . mysqli_connect_error();
saída;
}

Por favor note - mysqli é usado em todos os lugares, não mysql!!!

index.php

require_once "config.php";

//Executa a solicitação. Se houver um erro, nós o exibimos
se ($resultado = mysqli_query($ link,"SELECIONE Nome, Dinheiro DA Dívida ORDER POR Dinheiro DESC LIMIT 5")) (

Eco "A quem devo em ordem decrescente:

";

//Busca os resultados da consulta
while ($linha = mysqli_fetch_assoc($resultado)) (
echo $row["Nome"] . “com dívida”. $linha["Dinheiro"] . " rublos.
";
}

//liberando memória usada
mysqli_free_result($resultado);

//Fecha a conexão
mysqli_close($ link);
}

Como você pode ver, alguns pontos foram alterados (em itálico).

3) Método orientado a objetos de conexão a um banco de dados MySQL - usando métodos e classes:

Contras: Mais complexo e menos suscetível a erros.

Prós: brevidade e conveniência para programadores experientes.

$conn = new mysqli($db_hostname, $db_username, $db_password, $db_database);
if($conn->connect_errno)(
morrer($conn->connect_error);
) else (echo "A conexão com o banco de dados foi estabelecida com sucesso";)

aqui, em princípio, tudo é intuitivo:

  • $db_hostname é hospedar(principalmente localhost),
  • $db_database - nome do banco de dados;
  • $db_username e $db_password – nome de usuário e senha respectivamente!

Um exemplo de conexão a um banco de dados no estilo php OOP com amostragem de uma tabela

config.php

//conexões com o banco de dados
$mysqli = new mysqli("localhost", "nome de usuário", "senha", "nome-banco de dados"); // aqui inserimos seus dados diretamente: nome de usuário, senha e nome do banco de dados, o primeiro campo geralmente é localhost

//erro de conexão de saída
if ($mysqli->connect_error) (
die ("Erro de conexão do banco de dados: (" . $mysqli->connect_errno . ") " .mysqli_connect_error) ;
}

Por favor note - mysqli é usado em todos os lugares, não mysql!!! e ao contrário do método anterior, aparecem setas “->”, que indicam que este é um estilo OOP.

index.php

require_once "config.php";

//Executa a solicitação. Se houver um erro, nós o exibimos
if ($resultado = $ mysqli->consulta("SELECIONE Nome, Dinheiro DA Dívida ORDER BY Money DESC LIMIT 5")) (

Eco "A quem devo em ordem decrescente:

";

//Busca os resultados da consulta
while ($linha = $resultado-> buscar_assoc()) {
echo $row["Nome"] . “com dívida”. $linha["Dinheiro"] . " rublos.
";
}

//liberando memória usada
$resultado->fechar();

//Fecha a conexão
$mysqli->fechar();
}

Sua tarefa é encontrar as diferenças.

4) Comunicação com o banco de dados utilizando PDO:

Ao conectar-se a um banco de dados MySQL, são utilizadas expressões preparadas (usando o método prepare) e como resultado, maior segurança e aumenta muito o desempenho.

arquivo de configuração do método anterior! - mesmo

index.php

// Estilo PDO para comunicação com MySQL
if ($stmt = $mysqli->prepare("SELECT Nome, Voney FROM Dolg ORDER BY Money< ? LIMIT 5")) {

$stmt->bind_param("i", $summa);
$soma = 100000;

//inicia a execução
$stmt->executar();

// Declarando variáveis ​​para valores preparados
$stmt->bind_result($col1, $col2);

Eco "A quem devo em ordem decrescente:

";

//Busca os resultados da consulta
enquanto ($stmt->fetch()) (
eco $col1 . “com dívida”. $ col2 . " rublos.
";
}

//liberando memória usada
$stmt->fechar();

//Fecha a conexão
$mysqli->close();

Como você pode ver, aqui é muito mais complicado e você precisa estudar o DOP - este é um tópico separado.

Visualizações