divendres, 31 de gener del 2014

PHP. Connectar-se a una base SQL (1)

Una de les funcionalitats principals de PHP és la capacitat de comunicar-se amb bases de dades relacionals.

De fet, hi ha funcions per relacionar-se amb la majoria de bd del mercat:

  • MySql
  • Oracle
  • Informix
  • PostgreSQL
  • Microsoft SQL Server
Les funcions principals són:

  • mysql_connect: connectem amb el gestor MySQL
  • mysql_select_db: seleccionem la base de dades amb la que volem treballar
  • mysql_query: executa la query que volguem sobre la taula
  • mysql_close : tanca la connexió amb el gestor MySQL
  • mysql_error(): torna l’error que ha donat qualsevol de les funcions
  • mysql_fetch_array : retorna un vector associatiu amb les dades de la taula
  • mysql_num_rows() :quantes files torna la query select.

mysql_connect És la funció que ens permet connectar-se al gestor de base de dades mysql
mysql_connect (servidor, usuari, clau)

  • Servidor: on es troba el gestor
  • Usuari: usuari amb el que ens connectem
  • Clau: password de l’usuari amb el que ens connectem
Retorna el link a MySQL o False si la connexió ha fallat.
És important que sempre que obrim una connexió a una base de dades, un cop acabem la feina, tanquem aquesta connexió. Això ho aconseguim amb la funció mysql_close().

mysql_close(punter)
Punter: punter a la connexió MySQL
Retorna TRUE si s’ha tancat correctament o FALSE si la connexió ha allat.

Per gestionar els errors podem usar la funció mysql_error()
mysql_error: torna l’error de la última funció mysql executada
Un cop estem connectats a mysql, podem seleccionar una base de dades en concret. Això ho aconseguim amb la funció mysql_select_db

mysql_select_db (base de dades, identificador

Base de dades: on es troba les nostres taules
Identificador: identifica la connexió
Torna TRUE si ha trobat la bd o FALSE en cas contrari
Un cop dintre d'una base de dades, ja podem fer una query o consulta sobre qualsevol taula a la que tinguem permisos. Això ho aconseguim amb la funció mysql_query.
mysql_query (consulta, identificador): aquesta funció envia una consulta a MySQL
Consulta: la query que volen enviarI
dentificador: paràmetre opcional
Retorna valors diferents segons la sentència:

INSERT, UPDATE, DELETE, DROP: true o false
SELECT : retorna les files o false si ha anat malament.

Suposem que hem creat la següent taula :

CREATE TABLE
alumnes ( codi int(11) NOT NULL auto_increment, nom varchar(40) default NULL,cognom varchar(40) default NULL, mail varchar(50) default NULL, codicurs int(11) default NULL, PRIMARY KEY (`codi`) )
Tenim una taula alumnes amb els camps: nom,cognom, mail,codicurs i codi com a clau primaria.
Tenim un formulari d'entrada de dades amb els mateixos camps, excepte codi (que serà autoincremental a la nostra base de dades)
En la primera pàgina tenim el formulari

<html>
<head>
<title>Exercici d’exemple: exemple1mysql.html</title>
</head>
<body>
<h1>Alta d' Alumnes</h1>
<form action="exemple1mysql.php" method="post">
Nom: <input type="text" name="nom"> <br>
Cognom: <input type="text" name=“cognom"> <br>
Mail: <input type="text" name="mail"><br>
Seleccioni el curs: <select name="codicurs">
<option value="1">1 SMX</option>
<option value="2">2 SMX</option>
<option value="3">1 ASIX</option>
<option value=“4">3 ASI</option>
</select> <br> <input type="submit" value="Registrar">
</form>
</body>
</html> 

 
En la segona pàgina inserim les dades ingressades en el formulari a la taula: 


<html>
<head>
<title>Exercici d’exemple: exercici1mysql.php </title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","");
mysql_select_db(“Academia",$conexion) or
die("Problemas en la seleccion de la base de datos");
mysql_query("insert into alumnes(nom,cognom, mail,codicurs) values ('$_REQUEST[nom]',
'$_REQUEST[cognom]','$_REQUEST[mail]','$_REQUEST[codicurs]')", $conexion) or die("Problemes en el select".mysql_error());
mysql_close($conexion);
}?>
</body>
</html>

Cap comentari:

Publica un comentari a l'entrada