Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como conectar PHP ao MySQL


Você quer aprender como conectar PHP ao MySQL e realizar diferentes tipos de operações de banco de dados? Neste artigo, faremos exatamente isso - discutiremos a conectividade do banco de dados MySQL em PHP.

O PHP fornece diferentes maneiras de conectar o PHP a um servidor de banco de dados MySQL. Até o PHP 5.5, uma das formas mais populares era com a extensão MySQL - ela fornecia uma maneira "procedural" de se conectar ao servidor MySQL. No entanto, esta extensão está obsoleta a partir do PHP 5.5, então não vamos discutir isso.

Atualmente, suas duas opções são PDO e MySQLi.


A extensão PDO (PHP Data Objects) suporta diferentes tipos de servidores de banco de dados subjacentes junto com o servidor MySQL. E, portanto, é portátil caso você decida trocar o servidor de banco de dados subjacente a qualquer momento no futuro.


Por outro lado, a extensão MySQLi é específica para o servidor MySQL e oferece melhor velocidade e desempenho. A extensão MySQLi também pode ser um pouco mais simples de entender no início, pois permite escrever consultas SQL diretamente. Se você já trabalhou com bancos de dados SQL antes, isso será muito familiar. A extensão PDO, no entanto, cria um mapeamento poderoso do banco de dados SQL para seu código PHP e permite que você faça muitas operações de banco de dados sem precisar conhecer os detalhes do SQL ou do banco de dados. A longo prazo e para projetos maiores, isso pode economizar muito esforço de codificação e depuração.

Neste post, usarei a extensão MySQLi. Mas você pode aprender mais sobre a extensão PDO aqui no Envato Tuts+.
  • PHPCrie rapidamente uma interface PHP CRUD com a ferramenta PDO Advanced CRUD GeneratorSajal Soni

Abordaremos os seguintes tópicos neste artigo:
  • criando uma conexão MySQL
  • inserção, atualização e exclusão de registros
  • recuperando registros

Melhores scripts de banco de dados PHP no CodeCanyon


Neste post, mostrarei como fazer uma conexão bare-metal com um banco de dados MySQL a partir do PHP. Essa é uma habilidade importante, mas se você quiser economizar tempo em seu próximo projeto, talvez queira atualizar para um script de banco de dados profissional. Isso economizará tempo e facilitará seu trabalho.

Explore os melhores e mais úteis scripts de banco de dados PHP já criados no CodeCanyon. Com um pagamento único de baixo custo, você pode comprar esses temas WordPress de alta qualidade e melhorar a experiência do seu site para você e seus visitantes.

Aqui estão alguns dos melhores scripts de banco de dados PHP disponíveis no CodeCanyon para 2020.
  • PHP Comparando camadas de abstração de banco de dados PHP e plug-ins CRUD Sajal Soni

Criar uma conexão MySQL


Nesta seção, mostrarei como você pode se conectar ao servidor MySQL a partir de seu script PHP e criar um objeto de conexão. Mais tarde, esse objeto de conexão será usado para executar consultas, buscar saída e manipular os registros do banco de dados. Como discutimos anteriormente, vamos usar a extensão PHP MySQLi para este artigo.

A extensão MySQLi fornece duas maneiras diferentes de realizar operações de banco de dados. Você pode usá-lo tanto na forma orientada a objetos quanto na forma procedural, mas como este tutorial é voltado para iniciantes, vou ficar com a forma procedural. Se você estiver interessado em ver alguns trechos orientados a objetos, você pode me enviar um ping na seção de comentários abaixo e ficarei feliz em fornecê-los.

Para começar, vá em frente e crie o db_connect.php arquivo na raiz do documento com o seguinte conteúdo.
<?php
$mysqli_link = mysqli_connect("{HOST_NAME}", "{DATABASE_USERNAME}", "{DATABASE_PASSWORD}", "{DATABASE_NAME}");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Observe que usei espaços reservados no mysqli_connect função—você tem que substituí-los por valores reais.

Vamos examinar cada espaço reservado para ver o que ele representa.
  • {HOST_NAME} :Isso representa o nome de host ou endereço IP do seu servidor MySQL. Se você instalou o servidor MySQL no mesmo sistema junto com o PHP, você deve usar localhost ou 127.0.0.1 . Por outro lado, se você estiver usando um servidor MySQL hospedado externamente, poderá usar o nome do host ou endereço IP correspondente.
  • {DATABASE_USERNAME} :Isso representa o nome de usuário do seu usuário MySQL. Basicamente, este é o nome de usuário que você usa para se conectar ao seu servidor MySQL.
  • {DATABASE_PASSWORD} :Isso representa a senha do seu usuário MySQL. Novamente, esta é a senha que você usa para se conectar ao seu servidor MySQL junto com o nome de usuário do MySQL.
  • {DATABASE_NAME} :Este é o nome do banco de dados MySQL ao qual você deseja se conectar. Depois que a conexão for criada, você consultará esse banco de dados para outras operações.

Vá em frente e substitua esses espaços reservados por valores reais. No meu caso, instalei o servidor MySQL localmente e tenho um usuário MySQL com tutsplus-demo-user como o nome de usuário do MySQL e tutsplus-demo-password como a senha do MySQL. E com isso, o exemplo acima fica assim:
<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Se você executar este exemplo, ele deve criar um link de conexão de banco de dados e atribuí-lo ao $mysqli_link variável, que usaremos mais tarde para realizar diferentes tipos de operações de banco de dados.

Por outro lado, se houver algum problema ao configurar a conexão, o arquivo  mysqli_connect_errno A função retornará um código de erro e o mysqli_connect_error função exibirá o erro real. No exemplo acima, nós o usamos para fins de depuração.

Agora, temos uma conexão bem-sucedida com o servidor MySQL e veremos como usá-la para realizar diferentes tipos de consultas a partir da próxima seção.

Como inserir registros


Na seção anterior, discutimos como usar o mysqli_connect função para configurar uma conexão de banco de dados com o servidor MySQL. Nesta seção, iremos adiante e discutiremos como usar o objeto de conexão para executar INSERT consultas.

Se você quiser acompanhar os exemplos discutidos neste artigo, precisará criar a seguinte tabela MySQL em seu banco de dados. É a tabela que vamos usar em todos os exemplos a partir de agora.
CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Vá em frente e crie a tabela MySQL acima usando o software phpMyAdmin ou a ferramenta de linha de comando.

Em seguida, vamos criar o db_insert.php arquivo com o seguinte conteúdo. Por favor, não se esqueça de substituir os parâmetros de conexão pelos seus próprios.
<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$insert_query = "INSERT INTO students(`first_name`,`last_name`,`email`)
VALUES ('". mysqli_real_escape_string($mysqli_link, 'John') ."','". mysqli_real_escape_string($mysqli_link, 'Wood') ."','". mysqli_real_escape_string($mysqli_link, '[email protected]') ."')";
 
// run the insert query
If (mysqli_query($mysqli_link, $insert_query)) {
    echo 'Record inserted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Primeiro, configuramos uma conexão de banco de dados usando o mysqli_connect função, como discutimos anteriormente. Depois disso, preparamos a consulta de inserção que vamos executar mais tarde. É importante observar que usamos o mysqli_real_escape_string função para escapar dos valores de string que vamos usar na consulta de inserção. Especificamente, você deve usar esta função quando estiver lidando com valores enviados via $_POST variáveis ​​para evitar injeção de SQL.

Por fim, usamos o mysqli_query função, que recebe dois argumentos. O primeiro argumento é o link de conexão ativo onde a consulta será executada. E o segundo argumento é a consulta MySQL que queremos executar. A mysqli_query função retorna TRUE se a consulta foi executada com sucesso.

Por fim, usamos o mysqli_close função para fechar a conexão de banco de dados ativa. É uma boa prática fechar a conexão com o banco de dados depois de concluir as operações do banco de dados.

Vá em frente e execute o script, e isso deve inserir um registro no students tabela!

Como atualizar registros


A atualização dos registros em um banco de dados a partir do script PHP é muito semelhante à operação de inserção; a única diferença é que a consulta será a consulta de atualização em vez da consulta de inserção.

Vamos revisar o exemplo acima e atualizar o first_name campo, conforme mostrado no exemplo a seguir.
<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$update_query = "UPDATE students SET `first_name` = '". mysqli_real_escape_string($mysqli_link,'Johnny') ."' WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $update_query)) {
    echo 'Record updated successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Vá em frente e execute o script, e isso deve atualizar o registro no students tabela.

Como selecionar registros


Nas seções anteriores, discutimos como você pode inserir e atualizar registros em um banco de dados a partir do script PHP. Nesta seção, exploraremos como você pode buscar registros de um banco de dados usando os diferentes tipos de funções do MySQLi.

Em primeiro lugar, você precisa usar o mysqli_query função para executar a consulta de seleção. Após a execução bem-sucedida da consulta selecionada, o mysqli_query A função retorna o objeto de resultado mysqli, que podemos usar para iterar sobre os registros retornados pela consulta de seleção. Quando se trata de buscar e iterar sobre os registros do objeto de resultado do MySQLi, existem diferentes funções disponíveis.
  • mysqli_fetch_all :permite buscar todas as linhas de resultados de uma só vez. Você também pode especificar se deseja resultados como um array associativo, um array numérico ou ambos.
  • mysqli_fetch_array :permite recuperar uma linha de cada vez. E assim, você terá que usar o loop while para iterar sobre todos os registros. Novamente, você pode especificar se deseja uma linha de resultado como uma matriz associativa, uma matriz numérica ou ambas.
  • mysqli_fetch_assoc :busca uma linha de resultado uma de cada vez como uma matriz associada.
  • mysqli_fetch_object :busca uma linha de resultado uma de cada vez como um objeto.

Vamos dar uma olhada no exemplo a seguir para entender como isso funciona:
<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$select_query = "SELECT * FROM students LIMIT 10";
$result = mysqli_query($mysqli_link, $select_query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "First Name:" . $row['first_name'] . "<br/>";
    echo "Last Name:" . $row['last_name'] . "<br/>";
    echo "Email:" . $row['email'] . "<br/>";
    echo "<br/>";
}

// close the db connection
mysqli_close($mysqli_link);
?>

Como você pode ver, usamos o mysqli_fetch_array função com o MYSQLI_ASSOC opção como um segundo argumento. E assim, ele retorna a linha de resultado como um array associado. Se você usar o MYSQLI_NUM opção, você pode acessá-la como $row[0] , $row[1] e $row[2] no exemplo acima.

Por outro lado, se você usar o mysqli_fetch_object função no exemplo acima, você pode acessar os valores conforme mostrado no trecho a seguir. Por brevidade, incluirei apenas o trecho de loop while.
…
…
while ($row = mysqli_fetch_object($result)) {
    echo "First Name:" . $row->first_name . "<br/>";
    echo "Last Name:" . $row->last_name . "<br/>";
    echo "Email:" . $row->email . "<br/>";
    echo "<br/>";
}
...
...

Dessa forma, você pode buscar e exibir registros do banco de dados MySQLi.

Como excluir registros


Nesta seção, veremos como executar consultas de exclusão do script PHP. A exclusão de registros de um banco de dados é uma operação bastante direta, pois você só precisa preparar a consulta de exclusão e executá-la com o mysqli_query função.

Vamos ver o exemplo a seguir para ver como funciona.
<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$delete_query = "DELETE FROM students WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $delete_query)) {
    echo 'Record deleted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Como você pode ver, tudo é o mesmo que já vimos com os exemplos de inserção e atualização, exceto que a consulta é uma consulta de exclusão neste caso.

Então é assim que você pode realizar diferentes tipos de operações de banco de dados a partir do script PHP.


E com isso, chegamos ao final deste tutorial. O que discutimos até agora deve ajudá-lo a fortalecer os conceitos de conectividade de banco de dados, especificamente como conectar PHP ao MySQL e realizar diferentes tipos de operações.