Ir para conteúdo
Fórum Script Brasil
  • 0

O objeto no PHP


Frank K Hosaka

Pergunta

Nessa semana, o Iowys me ensinou a criar um objeto no PHP:

$apuracao = strtotime('2022-03-01');
$v = (object)[];
$v->dia = strftime('%d',$apuracao);

Levei um tempão para entender esse código, mas eu traduzi assim: crie um objeto chamado v$ e dentro dele crie ("->") uma propriedade chamado dia.
Claro que para obter o dia de uma data tem a função $dia=date('d',strtotime('2022-03-01')), mas no caso do Iowys ele queria me ensinar como obter o mês por extenso em português bem como outras informações, nesse caso a abordagem do objeto é bem interessante, mas como colocar isso na prática, isso é outro problema.

Mas a aula do Iowys foi muito além, ele me ensinou como ver o objeto com a instrução

echo "<pre>"; print_r(v$);echo"</pre>";

O marcador <pre> é importante para mostrar cada propriedade do objeto em cada linha, e não tudo numa só linha.

A linguagem do objeto é nova para mim, mas a aula do Iowys foi bastante oportuna.

Eu tenho o seguinte código:

$mysqli=new mysqli("localhost","root","hacker","base");
$query = $mysqli->query("select * from tbpedido");
echo "<pre>"; print_r ($query);echo "</pre>";
$registro = $query->num_rows;
echo "$registro registros";

Estou começando um projeto chamado orçamento, ou seja, a tbpedido não tem nada. E como é que eu sei que a tabela não tem nada?

Eu fiz o teste com print_r($query) e eu tive a seguinte resposta:

 

mysqli_result Object
(
    [current_field] => 0
    [field_count] => 3
    [lengths] => 
    [num_rows] => 0
    [type] => 0
)

ou seja, a informação que eu preciso está dentro do objeto e a partir dele posso criar um novo caminho para resolver o problema.





 

 

Editado por Frank K Hosaka
erro de digitação
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 1

Parabéns pelo aprendizado e capacidade de assimilação do conhecimento.
Para uma possibilidade maior de detectar falhas na conexão/execução de queries:
escreva seu arquivo de conexão assim:
 

<?php

// definição de variáveis para conexão
  $host     = 'localhost';      // servidor
  $user     = 'root';           // nome do utilizador
  $pass     = 'your-secret-pw'; // senha ou password
  $database = 'base';  		    // nome da base de dados

// estabelecer conexão:
  $sqli = new mysqli($host, $user, $pass);

// verificando se conectou de boas:
  if ($sqli->connect_error) {
    // se houver alguma falha, exibe mensagem específica da falha:
    die('<p class="error">Falha na conexão: ' . $sqli->connect_error . '</p>');
  }

// definir o padrão de caracteres
  if (!$sqli->set_charset('utf8')) {
    // se não conseguir definir o padrão de caracteres, exibe o padrão disponível
    die("<p class='error'>Seu charset não é utf8, chefe!<br>$sqli->character_set_name()</p>");
  }

// selecionar/abrir o banco de dados para trabalhar
  if (!$sqli->select_db($database)) {
    // se o banco de dados não for encontrado
    die("<p class='error'>Banco de dados não encontrado, chefe!</p>");
  }

E nos arquivos onde precisar da conexão, execute queries de busca assim:
 

<?php
  require 'connection.php';

  // define a query de busca
  $query = 'SELECT * FROM gruposusuarios';

  // executa a query e guarda o resultado em $result
  $result = $sqli->query($query);

  // se houver alguma falha
  if ($sqli->error) {
    // exibe mensagem específica da falha na busca:
    die('<p class="error">Falha na consulta: ' . $sqli->error . '</p>');
  } else if ($result->num_rows) {
    // se não houve erro e há algum resultado, fetch data
    $data = $result->fetch_all(MYSQLI_ASSOC);

    echo '<pre>Total de resultados : ';
    print_r($result->num_rows);
    echo '</pre>';

    echo '<pre>Resultados: ';
    var_dump($data);
    echo '</pre>';

    die(__FILE__ . ' at line: ' . __LINE__);
  } else {
    // se nenhum resultado foi encontrado
    echo '<p>Nenhum resultado encontrado, chefe!</p>';
  }

Só lembrando que é apenas minha sugestão.
Também pode ser feito de outras maneiras.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...