Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola,
Boa tarde.
Tenho várias aplicações empresariais que sao feitas em PHP , porem com o uso do banco de dados MySQL. As aplicações têm, chamadas de funções mysql_ e várias linhas.
Porem nós sabemos que o Mysql é da Oracle e não é gratuito para uso corporativo. Eu pergunto o seguinte: se eu mudar o banco de dados, como por exemplo para o PostGree, eu terei que mudar todas as funções que chamam o banco de dados? Tenho mais de 30.000 linhas de código chamando funções mysql. Existe alguma forma de se mudar de banco de dados e preservar todo o código?
Existe algum simular ao Mysql e possa ser usado para tudo de forma gratuita e livre? Estou cheio de ficar dependendo de softwares que cobram por tudo que oferecem. Cobrem pelo suporte, oras!
Desde já, obrigado.
Utilizar a PDO ou qualquer outra camada de abstração de dados vai te proporcionar uniformidade de uso, ou seja, não importa qual SGBD escolha, a sintaxe de uso será sempre a mesma.
Porém, a PDO abstrai a interface de uso e não a pseudo-linguagem SQL em si. Ou seja, entre os banos de dados mais populares de uso com PHP (MySQL, PostgreeSQL e SQLite) pouca coisa muda na sintaxe.
Mas a PDO te permite usar outros SGBDs, alguns menos conhecidos outros menos plausíveis de se usar com PHP e podem ter algumas... peculiaridades.
Um exemplo estendido, porém fictício (não tenho certeza justamente por não utilizar): O MySQL possui a função COUNT para contar registros. Imagine que um sistema hoje rode em MySQL, com a PDO e funciona as mil maravilhas. Amanhã ou depois por alguma razão obscura e sinistra a Aplicação precisa migrar para Informix.
Por ser suportado pela PDO, o código PHP não muda. Mas suponhamos que Informix não tenha suporte à função COUNT e precise de uma implementação diferente para prover esse recurso, como selecionar os registros e realizar alguma rotina com o PHP como workaround.
E, pra piorar um pouquinho mais suponhamos ainda que o Informix não permite a criação de funções em runtime, como o SQLite permite (busque exemplos do caso REGEXP, se quiser).
Por si só esse problema mata sua aplicação e você vai ter de dispender tempo procurando uma alternativa seja de SGBD (convencendo o Cliente), seja se apoiando no PHP.
ISSO, a PDO não resolve pra você. Por isso que além de abstrair a interface, caso a Aplicação tenha potencial de crescimento para migrações futuras, você deve abstrair a pseudo-linguagem SQL para cada banco, ou pelo menos os recursos mais específicos.
Ufa!
esse informix parece ser pior q o access
Você pode usar um ORM. Alguns deles:
Zend\Db: https://github.com/zendframework/zf2/tree/master/library/Zend/Db
Doctrine: http://docs.doctrine-project.org/en/latest/
Propel: http://propelorm.org/
PHPActiveRecord: http://www.phpactiverecord.org/
RedBean: http://redbeanphp.com/
Há um engano no post #1.. O MySQL é free.
Existe a versão community, a qual é aberta a comunidade de developers e a versão Enterprise, a qual é paga e possui planos de suporte diversificados.
Pode usar o MySQL community em ambiente corporativo. É o tradicional que a maioria usa.
[off]
O MySQL sempre ofereceu essas duas opções mesmo antes de ser adquirido pela Oracle em 2008/2009.
O fundador do MySQL entrou no pacote de aquisição, tornando-se funcionário da Oracle, mas alguns anos depois ele saiu alegando não ter gostado e estar arrependido e ainda tentando denegrir a imagem da empresa.
Alegou também que dentro da Oracle faziam jogos políticos para deixá-lo desconfortável (bullying).
Quem ganhou com isso foi a Oracle pois eliminou o maior concorrente do mercado.
Ao sair da Oracle, o fundador passou a divulgar o projeto MariaDB e desde então vem atacando e difamando a Oracle.
Na maioria das acusações não há valor jurídico, exemplo: http://blog.mariadb.org/disappearing-test-cases/
Ele tenta convencer os developers a migrar para outros bancos, de preferencia o dele, lógico...
Particularmente o que penso é que ele está com birra e ciúmes.. devido ao arrependimento de ter dado de "graça" o MySQL para uma mega corporação.
sim tem q mudar todas as linhas de codigos. vc pode usar PDO para evitar esse tipo de situação
http://php.net/manual/en/book.pdo.php