Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vales & Dores

[Resolvido] Como Conectar com PDO?

Recommended Posts

Nos sabemos que para se conectar sem o PDO ficaria assim:

 

$local = mysql_connect("localhost","root","");
$bd = mysql_select_db("user");

 

uma linha é usada pra mostrar o local o usuario e senha

o outro aponta pro Banco de Dados.

 

Agora no PDO como nos podemos fazer isso?

 

 

Eu andei lendo sobre isso e vi que o codigo e assim:

$pdo = new PDO ( "mysql:host=localhost;dbname=user", "root", "" );

 

reparei que temos o drive mysql, temos o local o nome do BD o usuario e senha tudo na mesma linha

eu estou usando isso mas nao se conecta, as informações estao batendo com o que eu criei.

e o meu servidor e o Xampp atualizado.

 

Onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

da algum erro?

 

error_reporting(E_ALL);

 

var_dump($pdo); // veja oque está saindo no dump

Compartilhar este post


Link para o post
Compartilhar em outros sites

da algum erro?

 

error_reporting(E_ALL);

 

var_dump($pdo); // veja oque está saindo no dump

 

 

Catchable fatal error: Object of class PDO could not be converted to string in C:\xampp\htdocs\www\conectar_bd.php on line 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu erro foi no var_dump()??? =X

 

pdo esta instalado ! se tento faze um select por acaso com a conexão do PDO..

 

$stm = $pdo->query("SELECT * FROM tabela");

 

print_r($stm->fetchAll());

 

isso é um misterio pra mim kkkkkk...

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu erro foi no var_dump()??? =X

 

pdo esta instalado ! se tento faze um select por acaso com a conexão do PDO..

 

$stm = $pdo->query("SELECT * FROM tabela");

 

print_r($stm->fetchAll());

 

isso é um misterio pra mim kkkkkk...

Que bom assim podemos aprender juntos, eu tenho um sistema de login e senha que esta funcionando, com o php antigo mas com PDO nao esta, vou ver na rede mundial se tem resposta assim que eu tiver posto por ka!! vamos ver tambem se alguem pode postar uma luz aqui sobre isso

 

$pdo = new PDO ("mysqli:host=localhost;dbname=user","root","");
var_dump('$pdo');

 

O grande mestre Igor.php falo pra mim sobre o mysqli disse que ele usava e era o melhor, sendo assim mudei o codigo e nao funciono mas pelomenos mudo o erro rssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom assim podemos aprender juntos, eu tenho um sistema de login e senha que esta funcionando, com o php antigo mas com PDO nao esta, vou ver na rede mundial se tem resposta assim que eu tiver posto por ka!! vamos ver tambem se alguem pode postar uma luz aqui sobre isso

 

$pdo = new PDO ("mysqli:host=localhost;dbname=user","root","");
var_dump('$pdo');

 

O grande mestre Igor.php falo pra mim sobre o mysqli disse que ele usava e era o melhor, sendo assim mudei o codigo e nao funciono mas pelomenos mudo o erro rssss

 

 

Para utilizar PDO, primeiro é instanciado um objeto da classe PDO, que representa a conexão com um banco. No construtor da classe, deve ser informado o chamado "DSN", que é uma string de conexão semelhante àquela vista anteriormente na função de conexão com PostgreSQL. Cada driver PDO especifica uma forma de como é montado o DSN para o SGBD correspondente. Além do DSN, também é informado, por parâmetro, o usuário, a senha de acesso e as opções adicionais.

 

// Exemplo de conexao com MySQL via PDO
$dsn = 'mysql:host=host;port=3306;dbname=bd';
$usuario = 'usuario';
$senha = 'senha';
$opcoes = array(
   PDO::ATTR_PERSISTENT => true,
   PDO::ATTR_CASE => PDO::CASE_LOWER
);

try {
   $pdo = new PDO($dsn, $usuario, $senha, $opcoes);
} catch (PDOException $e) {
   echo 'Erro: '.$e->getMessage();
}

 

Sendo assim nos temos que fazer o DSN, mas ainda tenho duvidas como saber quantos drive SGBD eu tenho a minha disposição?

se eu quizer usar vamos dizer o mysqli como fazer para ver se ele (Primeiro) Existe? (Segundo) Esta Abilitado?

se nao como fazer?

valeu gente espero ter ajudado.

Ai luis comenta ai

 

 

 

 

 

 

Ai amigos agora eu to chamando os amigos pra Briga rss

 

o comando para mim esta ok nao vejo erros DSN esta declarada a depuração com catch se tiver problemas tudo legal mas nao esta conectando.

 

A proposito eu chamo esse arquivo de conectar_bd.php, e estancio ele com include sera que é isso que esta pengando mal ?

 

 

to na frente da tela esperando ajuda de todos voces eu to achando que eu ainda tenho problema com drive, ainda mais sabendo que DOP e somente para (SOMac).

 

to aqui gente ate mais

 

Ta tudo aqui da PHP.ini

voces estao vendo mais pro final ta tudo ai o que tem de errado

 

extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
extension=php_mbstring.dll
extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mssql.dll
;extension=php_mysql_mysqlnd.dll
extension=php_mysql.dll
;extension=php_mysqli_mysqlnd.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql_mysqlnd.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll

 

Para utilizar PDO, primeiro é instanciado um objeto da classe PDO, que representa a conexão com um banco. No construtor da classe, deve ser informado o chamado "DSN", que é uma string de conexão semelhante àquela vista anteriormente na função de conexão com PostgreSQL. Cada driver PDO especifica uma forma de como é montado o DSN para o SGBD correspondente. Além do DSN, também é informado, por parâmetro, o usuário, a senha de acesso e as opções adicionais.

 

// Exemplo de conexao com MySQL via PDO
$dsn = 'mysql:host=host;port=3306;dbname=bd';
$usuario = 'usuario';
$senha = 'senha';
$opcoes = array(
   PDO::ATTR_PERSISTENT => true,
   PDO::ATTR_CASE => PDO::CASE_LOWER
);

try {
   $pdo = new PDO($dsn, $usuario, $senha, $opcoes);
} catch (PDOException $e) {
   echo 'Erro: '.$e->getMessage();
}

 

Sendo assim nos temos que fazer o DSN, mas ainda tenho duvidas como saber quantos drive SGBD eu tenho a minha disposição?

se eu quizer usar vamos dizer o mysqli como fazer para ver se ele (Primeiro) Existe? (Segundo) Esta Abilitado?

se nao como fazer?

valeu gente espero ter ajudado.

Ai luis comenta ai

 

 

 

 

 

 

Ai amigos agora eu to chamando os amigos pra Briga rss

 

o comando para mim esta ok nao vejo erros DSN esta declarada a depuração com catch se tiver problemas tudo legal mas nao esta conectando.

 

A proposito eu chamo esse arquivo de conectar_bd.php, e estancio ele com include sera que é isso que esta pengando mal ?

 

 

to na frente da tela esperando ajuda de todos voces eu to achando que eu ainda tenho problema com drive, ainda mais sabendo que DOP e somente para (SOMac).

 

to aqui gente ate mais

 

Ta tudo aqui da PHP.ini

voces estao vendo mais pro final ta tudo ai o que tem de errado

 

extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
extension=php_mbstring.dll
extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mssql.dll
;extension=php_mysql_mysqlnd.dll
extension=php_mysql.dll
;extension=php_mysqli_mysqlnd.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql_mysqlnd.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll

 

 

 

se eu quero usar o PDO vou ter que mudar isso tambem ?

 

$result = mysql_query("SELECT * FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
   $num_rows = mysql_num_rows($result); //Aqui se existir o usuario e senha ele vai retornor o valor de 1

   $id = mysql_fetch_array($result); // Aqui e para trazer as informações que tem dentro da tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta errado .. var_dump('$pdo');

 

certo... var_dump($pdo);// num precisa de '' em var_dump

 

voce esta rodando o php 5.3 ? entao nao tem rolo, PDO e mysqli ja vem habilitado

 

seu problema ja ta resolvido ?

 

extension=php_mysqli.dll // 'sem ; na frente' - ou seja HABILITADO
;extension=php_oci8.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql_mysqlnd.dll
extension=php_pdo_mysql.dll         // PDO HABILITADO
extension=php_pdo_odbc.dll

 

ta tudo Habilitado no seu php.ini. seu problema nao e o PDO.. nem sua forma de fazer conecao .

 

 

voce vez o select por acaso?

voce vez o var_dump da forma certa, como havia te mostrado??

 

se eu quero usar o PDO vou ter que mudar isso tambem ?

sim vai essa e a forma do mysql.. o PDO e diferente

 

$pdo = new PDO ("mysqli:host=localhost;dbname=user","root","");
var_dump($pdo);

$stm = $pdo->query("SELECT * FROM tabela");

print_r($stm->fetchAll());

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta errado .. var_dump('$pdo');

 

certo... var_dump($pdo);// num precisa de '' em var_dump

 

voce esta rodando o php 5.3 ? entao nao tem rolo, PDO e mysqli ja vem habilitado

 

seu problema ja ta resolvido ?

 

extension=php_mysqli.dll // 'sem ; na frente' - ou seja HABILITADO
;extension=php_oci8.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql_mysqlnd.dll
extension=php_pdo_mysql.dll         // PDO HABILITADO
extension=php_pdo_odbc.dll

 

ta tudo Habilitado no seu php.ini. seu problema nao e o PDO.. nem sua forma de fazer conecao .

 

 

voce vez o select por acaso?

voce vez o var_dump da forma certa, como havia te mostrado??

 

 

sim vai essa e a forma do mysql.. o PDO e diferente

 

$pdo = new PDO ("mysqli:host=localhost;dbname=user","root","");
var_dump($pdo);

$stm = $pdo->query("SELECT * FROM tabela");

print_r($stm->fetchAll());

Ainda estou com o problema sim...

 

ainda mais sabendo que posso ter que refazer o query e select, sobre sua pergunta o select e para buscar os POST do usuário.

O vardump ta retornando:

 

Notice: Undefined variable: dbh in C:\xampp\htdocs\www\conectar_bd.php on line 21

NULL

 

<?php
function conecta () {
       $hostname = "localhost";
       $password = "";
       $username = "root";


       try {
               $dbh = new PDO("mysql:host=$hostname;dbname=mysql", $username, $password);
               /*** echo a message saying we have connected ***/
               echo 'Connected to database';
       }
       catch(PDOException $e)
       {
               echo $e->getMessage();
       }


}

var_dump($dbh);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu uso esta função que fica num arquivo separado:

function conectar(){
define('host','endereco_do_meu_server_mysql');
define('user','nome_do_usuario_mysql');
define('pass','senha_mysql');
try {
$conn = new PDO ( "mysql:host=".host.";dbname=nome_do_banco_de_dados_mysql",user,pass);
}catch (PDOException  $e) {
echo "Atencao: Ocorreu um problema".$e->getMessage();
}
return $conn;
}

 

E nas páginas que preciso usar o banco de dados, coloco:

require "conexao.php";
$pdo=conectar();
$lg = $pdo->prepare("SELECT ....;");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu uso esta função que fica num arquivo separado:

function conectar(){
define('host','endereco_do_meu_server_mysql');
define('user','nome_do_usuario_mysql');
define('pass','senha_mysql');
try {
$conn = new PDO ( "mysql:host=".host.";dbname=nome_do_banco_de_dados_mysql",user,pass);
}catch (PDOException  $e) {
echo "Atencao: Ocorreu um problema".$e->getMessage();
}
return $conn;
}

 

E nas páginas que preciso usar o banco de dados, coloco:

require "conexao.php";
$pdo=conectar();
$lg = $pdo->prepare("SELECT ....;");

 

to vendo muito site falando do tal de prepare eu ainda sou iniciante o que eu coloco em prepare ?

Sera que deve ser mysql_query ??

 

tambem to boiano so caso do:

 

$pdo=conectar();

passa o porque ai gente

Compartilhar este post


Link para o post
Compartilhar em outros sites

O prepare serve para você dizer ao pdo para "preparar" a instrução, pois ela pode conter vários parametros, então ele pega a query e verifica se existem outras instruções antes de executa-la, como o Bind, onde o parametro não é passado diretamente na query, mas sim informado em separado:

 

$pdo=conectar();
$car = $pdo->prepare("select * from produtos where id= :id");
$car->bindvalue(":id",$idprod);
$car->execute();

 

Após passados todas as instruções que deseja, você manda executar a query.

 

Já o pdo=conectar(); você está chamando a função para depois poder fazer o que deseja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pagina conectar ta funcionando aqui esta conectar_bd.php

<?php
function conecta () {
       $hostname = "localhost";
       $username = "root";
	$password = "";



       try {
               $dbh = new PDO("mysql:host=$hostname;dbname=mysql", $username, $password);
               /*** echo a message saying we have connected ***/
               echo 'Connected to database';
       }catch(PDOException $e)
       {
               echo $e->getMessage();
       }


}
$pdo = conecta();
?>

 

autenticar.php, nao esta funcionando quem pode me dizer o que é?

<?php
include('session.php');
require ("conectar_bd.php");



// verifica se o botao enviar foi acionado
$verifica_acao 	= 	$_POST["acao"];
$user 			=	$_POST['email']; 
$senha 			=	$_POST['senha'];


// essa parte e para inpedir codigos nao autorizado
if (!$user || !$senha) 
{
   $seguranca_senha = mysql_real_escape_string($_POST['email']);
   $seguranca_login = mysql_real_escape_string($_POST['senha']);
}


//verifica se foi digitado alguma coisa no lofin
if (empty($user)) 
{
   die('Escreva seu E-Mail !');
}



//verifica se foi digitado alguma coisa no senha
if (empty($senha)) 
{
   die('Escreva sua Senha !');
}

// Se o botao enviar foi clicado e se for ele pega os dados digitado e faz a verificação se existe


if ($verifica_acao = "acao") 
{
   $user = $_POST["email"];
   $senha = $_POST["senha"];






// Aqui e feita a pesquisa se o susario e sua senha existe.
$pdo = conecta();

   $result = $pdo->mysql_query("SELECT * FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
   $num_rows = $pdo->mysql_num_rows($result); //Aqui se existir o usuario e senha ele vai retornor o valor de 1

   $id = mysql_fetch_array($result); // Aqui e para trazer as informações que tem dentro da tabela






// essa parte e a se existir o susario e sua senha gravar elas em session e vai conferir se é igual a senha digitada
// e vai gravar a id do usuario que esta tendo o acesso
   if ($num_rows == 1 && session_start()) {

       $_SESSION['email'] 	= $_POST['email'];
       $_SESSION['senha'] 	= $_POST['senha'];
       $_SESSION['id'] 	= $id['id'];   //// gravando pela session o ID numero do usuario
       header('location:defalt.php'); // pagina que vai ser mostrada se o Usuario for altenticado
   } 

else 
{
       echo '
                  <BR>
                  <BR>
                  <BR>
                  <BR>
                  <BR>
                  <BR>
                  <BR>
                  <BR>
                  <BR>
                  <BR>
                  <center><h1>Acesso negado!</h1></center>';
       echo'<center><a href="logof.php">voltar</a></center>';
   }
}
?>



Compartilhar este post


Link para o post
Compartilhar em outros sites

Oque ta errado kkkkkkkkk.. Assim fica dificil em =X

 

Primeira coisa crucial pra voce.. PDO e MYSQL fazem a mesma coisa "se conecta ao banco de dados" a grosso modo!

 

Porem!!!! cada qual tem sua forma de conectar! E cada um sua forma de 'trabalhar'..

 

MYSQL - Nao funciona com conexao PDO

// isso e mysql! pro PDO isso e grego
$result = mysql_query("SELECT * FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
   $num_rows = mysql_num_rows($result); //Aqui se existir o usuario e senha ele vai retornor o valor de 1

   $id = mysql_fetch_array($result);

 

PDO - Nao funciona com MYSQL

// isso e forma do PDO, pro MYSQL isso grego....
$pdo=conectar();
$car = $pdo->prepare("select * from produtos where id= :id");
$car->bindvalue(":id",$idprod);
$car->execute();

var_dump($car->fetchAll(PDO::FETCH_ASSOC));

 

Voce mudo sua conexao? SIM

 

seu sistema e Procedural??? SIM

 

Entao!

vai te que muda tudo que se trata de SELECT, INSERT, DELETE, UPDATE no seu sistema.. PDO nao faz magica e adivinha onde ele tem que trabalha no seu codigo ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php 

// Definindo parametros de conexao 
$dsn = 'mysql:host=localhost;port=3306;dbname=banco'; 
$usuario = 'usuario'; 
$senha = 'senha'; 

// Conectando 
try { 
$pdo = new PDO($dsn, $usuario, $senha); 
} catch (PDOException $e) { 
echo $e->getMessage(); 
exit(1); 
} 

// Preparando statement 
$stmt = $pdo->prepare("SELECT * FROM usuario WHERE login = ? AND senha = ?"); 
$stmt->bind_param(1, $_POST['login'], PDO::PARAM_STR); 
$stmt->bind_param(2, $_POST['senha'], PDO::PARAM_STR); 

// Executando statement 
$stmt->execute(); 

// Obter linha consultada 
$obj = $stmt->fetchObject(); 

// Se a linha existe: indicar que esta logado e encaminhar para outro lugar 
if ($obj) { 
$_SESSION['login'] = $_POST['login']; 
header('Location: http://outro/lugar'); 
} else { 
echo '<p class="erro">Login/Senha inválidos</p>'; 
} 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza man.. continua estudando o PDO..

 

So quero que fique claro pra você que esse codigo.

 

$pdo = conecta();

   $result = $pdo->mysql_query("SELECT * FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
   $num_rows = $pdo->mysql_num_rows($result); //Aqui se existir o usuario e senha ele vai retornor o valor de 1

   $id = mysql_fetch_array($result);

 

NUNCA VAI FUNCIONA!

 

Porque com o PDO é assim:

 

$pdo = conecta();

   $stm= $pdo->prepare("SELECT * FROM cadastro WHERE email=? AND senha=?");
   $stm->bindValue(1,$_POST['email']);
   $stm->bindValue(2,$_POST['senha']);

$stm->execute();

$count = $pdo->rowCount();

$result = $stm->fetch();

PDO e uma coisa mysql é outra.

Isso tem que ta no sangue!!! como diria um professor que tive kkkkkkkkkk...

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza man.. continua estudando o PDO..

 

So quero que fique claro pra você que esse codigo.

 

$pdo = conecta();

   $result = $pdo->mysql_query("SELECT * FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
   $num_rows = $pdo->mysql_num_rows($result); //Aqui se existir o usuario e senha ele vai retornor o valor de 1

   $id = mysql_fetch_array($result);

 

NUNCA VAI FUNCIONA!

 

Porque com o PDO é assim:

 

$pdo = conecta();

   $stm= $pdo->prepare("SELECT * FROM cadastro WHERE email=? AND senha=?");
   $stm->bindValue(1,$_POST['email']);
   $stm->bindValue(2,$_POST['senha']);

$stm->execute();

$count = $pdo->rowCount();

$result = $stm->fetch();

PDO e uma coisa mysql é outra.

Isso tem que ta no sangue!!! como diria um professor que tive kkkkkkkkkk...

 

Cara to vendo voce deireto falar que PDO e uma coisa e mysql e outra por que voce esta dizendo isso?

digo isso por que eu infelizmente descobri que a minha estrutura a estrutura que eu consigo fazer funcionar de olhos fechados, nao e boa...

 

um programador falo que se nao for PDO o sistema vai parar, ai eu infelizmente fiquei curioso e pensando que meu conhecimento

iria me garantir em fazer isso de uma forma facil, e agora eu vejo que e um INFERNO...

 

tudo bem fazer a função eu ja sei fazer o drive nao e mais problema chamar o arquivo com include e depois chamar a função

$pdo = conecta();

tambem esta legal, mas essa m***** de preparar e executar eu nao consigo entender tem MANE que coloca no sites que fico lendo que tem quer ser com prepare e tem baba### que coloca query e eu fico no meio sem saber se o prepare é um comando ou uma espreção usada para dizer que eu tenho que preparar o comando.

 

cara isso é um saco.

 

ainda mais tem que fazer assim segundo apredi com todos voces que ajudaram:


$stmt = $pdo->prepare("SELECT * FROM cadastro");
$stmt->execute = $stmt->ftech(PDO::FETCH_ASSOC)){
echo "nome do cliente:".$cliente['nome']."<br/>";
} 

 

Cara isso e um inferno tem que ser mesmo esse prepara ou query?

cara e esse -> pra que serve isso, tenho mesmo que colocar, o que ele quer dizer?

Agora tem mais por que duas variaveis iguais?

isso funciona mesmo ? isso nao e ilegal duas com o mesmo nome?

 

o while tudo bem mas, que diabo e esse :: depois do PDO pra que esse trem ai ?

por que o meu editor nao tem na sua lista o FETCH_ASSOC ?

sera que estou usando servidor serto sera que ele da suporte ?

 

$car->bindvalue(":id",$idprod);

$car->execute();

 

pra que esse bindvalue o que quer dizer que eu fiz busca e nao apareceu nada sobre ele, dizendo o que ele faz para que serve e por que usar?

e o que me mata pra que colocar uma variavel $idprod que nao esta criada em lugar nem um nao existe essa variavel no programa e ela ainda esta ai dentro para que isso?

 

acredito que sim mas isso esta me matando.

muita coisas na cabeça tenho que dar um tempo e pesso desculpa a todos voces por

ser um asno como eu sou vou dar um tempo com isso mais uma vez desculpa

a todos e muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qndo disse que PDO e uma coisa e MYSQL outra , me referi na forma de trabalhar com eles..

cada um tem sua forma..

 

um programador falo que se nao for PDO o sistema vai parar

Errado! seu sistema vai funciona do msm jeito.

 

PDO e um drive de conexao ele faz a mesma coisa q mysql..

 

Manim se voce nao intende isso $var->algumacoisa();

 

Prq voce nao sabe Orientacao a Objeto e o PDO e desenvolvido OOP.

 

continue no Mysql e estude OOP. que quando aprender, vai ver que o PDO e simples!

 

tao simples qnto o mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha contribuição para as pessoas que me ajudaram:

 

A conexao por meio de PDO de uma forma simples, como diz a musica somente o necessario :clap: :clap: :clap: rs!

 

conexao com o PDO:

<?php

       $hostname = "localhost";
       $username = "root";
       $password = "";
       $bd = "user";

       $dsn = new PDO("mysql:host=" .$hostname. ";dbname=" .$bd, $username, $password);


			if($dsn == true){
			echo 'Sejá bem vindo ao MySQL';
			}
			else
			{
			echo 'FALHA ATENÇAO';
			}


?>

 

usando variaveis coloca dentro delas as informações que vou necessitar para fazer a conexao

(não sei por que nao fazer direto, mas tudo bem)...

 

depois temos que criar a DSN que na verdade e o corpo da conexao com dados como tipo de drive suportado pelo seu MySQL no meu caso e o mysql eu estou usando o XAMMP que todo mundo baixa verção 5 e nele tem suporte pra mysql e mysqli, não me lembro do script para ver os drives ativados (quem tiver ele ai posta para ajudar obrigado).

 

depois disso voce ja sabe é so montar o resto sempre lembrando de concatenar repare tambem que apenas uma chamada de variavel sao concatenada na entrada e saida?

 

isso por que ele é unico repare as outras variaveis só é concatenada na entrada e depois so colocar virgula.

 

otimo so ai voce ja esta conectado seu que existe forma maravilhosas de fazer isso, pelomenos esta esta funcionando.

 

Sabemos que as funções sao otimas mas pelo meu visto e mais um estado de mais segurança detro da linguagem, pois seu tratamente com ' ' e " " (simples e dupla) e reduzido evitando chamada de programas de terceiros com fins nao didaticos e morais pois nos sabemos que somente a aspas duplas e quem espande variaveis, mas isso e um outro papo vamos voltar.

 

depois disso eu descobrir que a informação dentro da var DSN e na verdade uma verdadeira ou Falsa (TRUE FALSE)

ai fico legal criei uma condição para saber o que esta passando mas ela na verdade esta atrapalhando por que fica impreça na tela nao é legal.

 

pronto conexao esta ai.

 

Vamos para a alteração dos antigos comandos select no SQL

 

Vou colocar a antiga forma:

 

$query = mysql_query("SELECT * FROM cadastro");
while($row = mysql_fetch_array($query))

 

agora vamos colocar a forma usando o PDO:

 

$local = "SELECT * FROM cadastro";
$busca = $dsn->query("$local");
$busca->execute();


while($row = $busca->fetch(PDO::FETCH_ASSOC))

 

Comentario:

 

na minha opniao almento a variaveis rs!

sera que isso nao e ruim ?

ja que cada var e um bloco na memoria?

nao devemos evitar se possivel?

 

por favor os mestre do forum responda essas a cima obrigado.

 

basicamente temos que mostrar onde localizar a informação e tabela isso nao e o problema normal uma mysql_query resolvia isso ai.

 

mas aqui nao ela fica numa veriavel separada, mas isso é uma aopção da pra fazer tudo junto na mesma linha,

Agora que vem a melhor parte vou descoberto que esse lixo de nome que o pessoal usa que se chama prepare e executar e somente um nome babaca que voce pode escolher a sua vontade na verdade o inportante e a correta dentro de (parentes) no nosso caso e a variavel $local, em seguida vel as duas variavel que tem o mesmo nome nao sei por que duas com mesmo nome na verdade nem sabia que isso podia fazer rs!

mas como diz minha esposa BAH !

 

Atenção:

na primeira variavel $busca nos temos outra variavel chamada $dsn se voce olhar voce vai ver que dentro dessa programação nos não temos ela, sendo assim eu me perguntava de onde vai essa porcaria ?

agora eu sei que a variavel que esta sendo usada na sua conexão pode ser chamada no caso a $dsn esta na pagina conexao.

atenção: esse nome query na verdade nao tem a minima importancia acho que somente por ter que existir e coisa do ZEND rss.

se alguem souber agradeço.

 

depois mais uma frescura nos temos que para executar todas as coisas até agora e escrever $busca -> execute();

presta atenção e execute nao executar ainda nao sei se isso e um comando ou uma frescura .

 

Resumindo para voce que escrevia isso aqui no passado

$query = mysql_query("SELECT * FROM cadastro");

agora tem que colocar assim:

$local = "SELECT * FROM cadastro";
$busca = $dsn->query("$local");
$busca->execute();

 

 

e para fazer um loso chamado while ainda permanece mas de outra forma:

while($row = mysql_fetch_array($query))

 

O para quem usa PDO fica assim:

while($row = $busca->fetch(PDO::FETCH_ASSOC))
{

 

fica calmo repare que o nome FETCH permanece mas nao e mais array e sim ASSOC pelo o que nos podemos achar na net e a mesma coisa, ainda nao sei o por que de PDO nesse campo e nem por que dois pontos em pé ::

Ate a proxima agora vou a tras do delete update insert e vou colocando aqui acredito que agora nao seja tao sofrido como foi ontes um abraçoa a todos e em quanto eu tava escrevendo isso eu vi que o luis esta online esse cara e muito gente boa obrigado LUIS PAULLO pelo sua ajuda valeu cara

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabéns deu o primeiro passo .. :clap:

 

na minha opniao almento a variaveis rs!

sera que isso nao e ruim ?

ja que cada var e um bloco na memoria?

nao devemos evitar se possivel?

viaja na maionese não kkkkkkkkkkkkkkkkkkkkkkkkk

 

se preocupa com isso qndo tive um arquivo com 2000 linhas de codigo php kkkkkkkk

// so precisa disso... 
$busca = $dsn->query("SELECT * FROM cadastro");
$busca->fetchAll(PDO::FETCH_ASSOC);
//seque o while.....

 

execute() e pro PDOStatement.. Um outro capitulo pra sua saga .. ^^

 

pelo visto ja ta resolvido..

 

flw manim bons estudos..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal o proximo vai ser long Polling kkkkkk

vou fazer um chat ligado no banco de dados e vou colocar aqui, agora que o PDO passo vó voltar para o chat (AI !! O chat e em janela popup rss), o Sr Luiz que deu á ideia e eu to tentando, mas o chat e o popup do chat já esta pronto, bizarro, mas tá funcionando ainda vou terminar e melhorar.

quando tiver proto eu posto ele no Post chatprivado.

 

Parabéns deu o primeiro passo .. :clap:

 

 

viaja na maionese não kkkkkkkkkkkkkkkkkkkkkkkkk

 

se preocupa com isso qndo tive um arquivo com 2000 linhas de codigo php kkkkkkkk

// so precisa disso... 
$busca = $dsn->query("SELECT * FROM cadastro");
$busca->fetchAll(PDO::FETCH_ASSOC);
//seque o while.....

 

execute() e pro PDOStatement.. Um outro capitulo pra sua saga .. ^^

 

pelo visto ja ta resolvido..

 

flw manim bons estudos..

PDOStatement implementa Traversable {
/ * PROPRIEDADES * /
readonly corda $ PDOStatement-> queryString ;
/ * Métodos * /
bool PDOStatement :: bindColumn ( mixed $ coluna , misto & $ param [, int $ type [, int $ maxlen [, mixed $ driverdata ]]])
bool PDOStatement :: bindParam ( mista parâmetro $ , mista e variável $ [, int $ data_type = PDO :: PARAM_STR [, int $ length [, mistos R $ driver_options ]]])
bool PDOStatement :: bindValue ( mista parâmetro $ , mista valor de US $ [, int $ data_type = PDO :: PARAM_STR ])
bool PDOStatement :: closeCursor ( vazio )
int PDOStatement :: columnCount ( vazio )
bool PDOStatement :: debugDumpParams ( vazio )
cadeia PDOStatement :: errorCode ( vazio )
matriz PDOStatement :: errorInfo ( vazio )
bool PDOStatement :: execute ([ matriz $ input_parameters ])
mista PDOStatement :: fetch ([ int $ fetch_style [, int $ cursor_orientation = PDO :: FETCH_ORI_NEXT [, int $ cursor_offset = 0 ]]])
matriz PDOStatement :: fetchAll ([ int $ fetch_style [, mixed $ fetch_argument [, matriz $ ctor_args = array () ]]])
cadeia PDOStatement :: fetchColumn ([ int $ column_number = 0 ])
mista PDOStatement :: fetchObject ([ corda $ class_name = "stdClass" [, matriz $ ctor_args ]])
mista PDOStatement :: getAttribute ( int atributo $ )
matriz PDOStatement :: getColumnMeta ( int $ coluna )
bool PDOStatement :: nextRowset ( vazio )
int PDOStatement :: rowCount ( vazio )
bool PDOStatement :: setAttribute ( int $ atributo , mista valor de US $ )
bool PDOStatement :: setFetchMode ( int $ modo )
}

 

Saquei rs obrigado mais uma vez só me diga uma coisa quando eu quiser saber isso de um comando ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.