Desde 2020 é que estudo o PHP e em 2022 comecei a brincar com o Laravel. O melhor brinquedo que eu encontrei nesse tempo todo foi o var_dump, ele é mais poderoso que o echo, pois ele consegue exibir na tela muito mais que uma string, como é o caso do registro de um banco de dados. object(stdClass) é um nome inventado pelo PHP para guardar informações do tipo registro do banco de dados. Ele tem várias camadas, assim object(stdClass)[0], object(stdClass)[1]... mas na hora de usar o var_dump, ele só mostra o quinto "atributo";
Muito mais bacana que o var_dump( ) é o dd( ) do Laravel, ele é fantástico. O dd( ) mostra uma montanha de informações a respeito de uma variável, além de parar a execução do programa. O único problema é que ele só funciona no Laravel.
Nessa nova pesquisa, eu acabei encontrando um método do PDO chamado fetchObject( ), e ele tem a mesma funcionalidade do fetch_assoc( ) do mysqli, ele só mostra o primeiro registro que encontrar pelo caminho, e não mais que isso.
Para testar isso, usei o seguinte código:
<bodystyle="width:500px;margin:0 auto;margin-top:50px"><?php
classConn{privatestatic $instancia;private $pdo;privatefunction __construct(){
$this->pdo=new PDO("mysql:host=localhost;dbname=diario","root","");}staticfunction instancia(){if(!self::$instancia){self::$instancia=newself();}returnself::$instancia;}functionselect($sql,$params=[]){
$stmt=$this->pdo->prepare("select $sql");for($i=0;$i<count($params);$i++){
$stmt->bindParam($i+1,$params[$i]);}
$stmt->execute();return $stmt->fetchObject();// alterar para fetchAll(PDO::FETCH_OBJ)}}
$codprod=2;
$produto=Conn::instancia()->select("* from tbprod where codprod > ? limit 2",[$codprod]);
var_dump($produto);?></body>
resultado:
C:\wamp64\www\Astudy\index.php:36:
object(stdClass)[4]
public 'codprod' => int 3
public 'un' => string 'pc' (length=2)
public 'prod' => string 'Chave Fenda Teste Rayco' (length=23)
public 'custo' => string '2.50' (length=4)
public 'marg' => float 30
public 'codbar' => string '7898338092162' (length=13)
public 'loc' => string '4B6b' (length=4)
public 'emb' => float 12
public 'cf' => string '82054000' (length=8)
public 'codforn' => string 'e380482' (length=7)
public 'estoque' => float 12
public 'origem' => int 0
public 'vazio' => null
public 'venda' => string '3.50' (length=4)
Os quatro últimos campos desse registro violam o principio básico do banco de dados, ninguém calcula o estoque dentro da tabela de produtos ou coloca o preço de venda lá ou cria um campo para não ter nenhuma informação como o 'vazio'. No meu caso, precisei fazer essa gambiarra para poder comparar o meu banco de dados com o banco de dados da Bling que montei a partir das planilhas que eles fornecem.
Pergunta
Frank K Hosaka
Desde 2020 é que estudo o PHP e em 2022 comecei a brincar com o Laravel. O melhor brinquedo que eu encontrei nesse tempo todo foi o var_dump, ele é mais poderoso que o echo, pois ele consegue exibir na tela muito mais que uma string, como é o caso do registro de um banco de dados. object(stdClass) é um nome inventado pelo PHP para guardar informações do tipo registro do banco de dados. Ele tem várias camadas, assim object(stdClass)[0], object(stdClass)[1]... mas na hora de usar o var_dump, ele só mostra o quinto "atributo";
Muito mais bacana que o var_dump( ) é o dd( ) do Laravel, ele é fantástico. O dd( ) mostra uma montanha de informações a respeito de uma variável, além de parar a execução do programa. O único problema é que ele só funciona no Laravel.
Nessa nova pesquisa, eu acabei encontrando um método do PDO chamado fetchObject( ), e ele tem a mesma funcionalidade do fetch_assoc( ) do mysqli, ele só mostra o primeiro registro que encontrar pelo caminho, e não mais que isso.
Para testar isso, usei o seguinte código:
Os quatro últimos campos desse registro violam o principio básico do banco de dados, ninguém calcula o estoque dentro da tabela de produtos ou coloca o preço de venda lá ou cria um campo para não ter nenhuma informação como o 'vazio'. No meu caso, precisei fazer essa gambiarra para poder comparar o meu banco de dados com o banco de dados da Bling que montei a partir das planilhas que eles fornecem.
Editado por Frank K HosakaLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.