Curso POO PHP Acceso a bases de datos
Acceso a bases de datos
PHP soporta máis de 15 sistemas xestores de bases de datos: SQLite, Oracle, SQL Server, PostgreSQL, IBM DB2, MySQL, etc. Ata a versión 5 de PHP, o acceso ás bases de datos facíase principalmente utilizando extensións específicas para cada sistema xestor de base de datos (extensións nativas). É dicir, que se queriamos acceder a unha base de datos de PostgreSQL, deberiamos instalar e utilizar a extensión dese xestor en concreto. As funcións e obxectos a utilizar eran distintos para cada extensión.
A partir da versión 5 de PHP introduciuse na linguaxe unha extensión para acceder dunha forma común a distintos sistemas xestores: PDO. A gran vantaxe de PDO está clara: podemos seguir utilizando unha mesma sintaxe aínda que cambiemos o motor da nosa base de datos. Pola contra, nalgunhas ocasións preferiremos seguir usando extensións nativas nos nosos programas. Mentres PDO ofrece un conxunto común de funcións, as extensións nativas normalmente ofrecen máis potencia (acceso a funcións específicas de cada xestor de base de datos) e nalgúns casos tamén maior velocidade.
Dos distintos SXBD existentes imos traballar con MySQL. MySQL é un xestor de bases de datos relacionais de código aberto baixo licenza GNU GPL. É o xestor de bases de datos máis empregado coa linguaxe PHP.
Tradicionalmente as conexións entre PHP e MySQL establecíanse utilizando a extensión nativa mysql. Esta extensión mantense na actualidade para dar soporte ás aplicacións xa existentes que a utilizan, pero non se recomenda utilizala para desenvolver novos programas. O máis habitual é elixir entre MySQLi (extensión nativa) e PDO.
Con calquera de ambas as dúas extensións, poderás realizar accións sobre as bases de datos como:
- Establecer conexións.
- Executar sentenzas SQL.
- Obter os rexistros afectados ou devoltos por unha sentenza SQL.
- Empregar transaccións.
- Executar procedementos almacenados.
- Xestionar os erros que se produzan durante a conexión ou no establecemento desta.
PDO e MySQLi (e tamén a antiga extensión mysql) utilizan un driver de baixo nivel para comunicarse co servidor MySQL. Ata hai pouco o único driver dispoñible para realizar esta función era libmysql, que non estaba optimizado para ser utilizado dende PHP. A partir da versión 5.3, PHP vén preparado para utilizar tamén un novo driver mellorado para realizar esta función, o Driver Nativo de MySQL, mysqlnd.
--Víctor Lourido 19:05 15 jul 2013 (CEST)