Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
oi pessoal,
gostaria de que alguem me ajudasse a mudar meu script de mysql para mysqli usando PDO..
meu code é esse, a conexão eu acho que já sei:
$conecta = new mysqli('localhost', 'root', '', 'testes');
$sql = 'SELECT * FROM usuarios';
try {
$qrSeleciona = $conecta->prepare($sql);
$qrSeleciona->execute();
$resQuery = $qrSeleciona->fetchAll(PDO::FETCH_NUM);
$resConta = $qrSeleciona->rowCount(PDO::FETCH_NUM);
} catch (PDOException $erroSeleciona) {
echo 'Erro ao selecionar<br /> ', $erroSeleciona->getMessage();
}>
Troque:
$conecta = new mysqli('localhost', 'root', '', 'testes');
Por:
$conecta = new PDO( 'mysql:host=localhost;dbname=teste', 'usuario', 'senha' );
;)
tu entendeu minha pergunta?
como você citou estarei usando o mysql e não mysqli.
Agora eu que não entendi ?
Poderia explicar melhor, mais claramente ?
>
Agora eu que não entendi ?
Poderia explicar melhor, mais claramente ?
gostaria de passar para mysqliiiiii o script acima, usando PDO...
>
gostaria de passar para mysqliiiiii o script acima, usando PDO...
isso é impossível.
mysql é o banco de dados.
mysqli e pdo são drivers de acesso ao banco.
não tem como você usar um driver para acessar outro, entendeu ?
ou você usa mysqli, ou você usa pdo. O banco continua sendo mysql
E por qual motivo você está querendo usar PDO se vai realizar conexões somente com MySQL?
>
E por qual motivo você está querendo usar PDO se vai realizar conexões somente com MySQL?
tesla, qual o problema ? o PDO foi feito para suportar vários bancos, é uma camada de abstração nativa do PDO, o cara conectando ou não no MySQL
ele pode usar PDO normalmente ..
Não tenho nada contra, só acho desnecessário quando se tem uma extensão tão boa como a MySQLi. Bom, é meio que uma decisão pessoal mesmo.
tesla, pensa no seguinte cara, um dia, seu cliente, que não tem a mínima noção do que é programação, ouve alguma notícia, sobre algum outro banco de dados .. então ele chega pra você, e fala assim: troca o banco de dados atual, para esse aqui. vamos supor que ele quer um firebird da vida. E aí ? vai trocar o código todo ? você tem que se precaver cara .. não pode pensar só de modo genérico. Se você pensar, 'eu não vou fazer isso por .. blablalbalba' você nunca vai fazer nada, como também se ficar pensando 'e se', e se isso, isso, isso e isso, .. tá, então muda, saca ? mudanças
sempre ocorrem, nem sempre são favoráveis a gente.
;)
Tesla, se MySQLi e PDO conseguem competir em níveis de desempenho e desenvolvimento MAS o PDO tem a vantagem da flexibilidade, por que usar o MySQLi?
Concordo com o Guilherme, é melhor ter algo que vai te dar suporte a qualquer momento, como uma mudança inesperada de banco de dados, do que pensar que o cara não vai mudar, e quando você menos esperar, você tem que mudar
Sim, sim, compreendo vocês, mas vai por mim, meus sistemas se adaptariam na mudança de banco de dados mudando apenas 1 arquivo no sistema todo, inclusive utilizando a classe PDO (é claro, tirando a parte SQL). Então eu to precavido contra esses "requisitos de cliente". O engraçado é clientes pedindo para fazer o site baseado em PostgreSQL em determinado serviço de hospedagem, sendo que o serviço não oferecia PostgreSQL. Eu tive que quase cair de foice com ele explicando que o PostgreSQL não dava para ser "instalado" por mim. Ele acreditava fielmente que o PostgreSQL era algo que o webmaster instalava na hospedagem.
Mas em breve estarei assinando uma revenda, aí sim, vou utilizar somente PDO, afinal, vou configurar ela para ter as extensões habilitadas, o contrário de muitas hospedagens, que sequer tem a classe finfo (acredite ou não, isso me fez desenvolver uma classe para PHP que verifica o tipo de arquivo de acordo com o arquivo magic, ficou muito boa, mas deu um trabalho absurdo).
Por isso, eu uso PDO com ORM, pra ser mais específico Table Data Gateway. Assim, se houver mudança de SQL, eu só altero a classe do Table
Tesla, mesmo que você conseguiu tornar o MySQLi flexível na sua aplicação, o PDO já é nativamente assim. De verdade cara, não vejo porquê usar MySQLi, só se você gosta de trabalhar bem genericamente.
Troque:
$conecta = new mysqli('localhost', 'root', '', 'testes');
Por: