Professional Documents
Culture Documents
Para empezar a conectar a una base de datos desde un sitio web, se necesita tener en
conocimiento:
Por defecto el host lleva como nombre localhost, el usuario de base de datos es “root”, sin
embargo, para asegurarnos de que la contraseña es correcta, debemos de ir a la siguiente ruta:
C:\xampp\phpMyAdmin, y abrir el archivo “config.inc.php”, una vez abierto, se encontraran los
parámetros de autenticación, incluyendo el de contraseña:
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '010207';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
De la misma manera, se necesita de funciones PHP capaces de abrir conexión a base de datos,
así como hacer tareas de manipulación de datos ya creados, y de realizar interacciones con la
información que se almacena en la base de datos
Entre funciones MySql para PHP, primero se debe de establecer la apertura de conexión de la
base de datos con la función:
mysqli_connect
Host
Usuario de base de datos
Contraseña de base de datos
Nombre de base de datos
De manera opcional, si el usuario no está seguro de que existe conexión y desea establecer
estabilidad den el sitio web, puede usar la siguiente función:
mysqli_connect_errno
Esta función se encarga de regresar como valor 1 si existe código de error de conexión, caso
contrario regresara 0.
//Forma Procedimental
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Fallo en conexion a MYSQL" . mysqli_connect_error();
}
?>
//Forma orientada a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$database = "my_db";
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Luego, se requiere emplear sentencias repetitivas (for, while, etc.) para mostrar el contenido
de la base de datos. La consulta desde base de datos a sitio web puede generarse mediante
dos formas:
- Forma Procedimental:
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Perform queries
//mysqli_query($con,"SELECT * FROM MyGuests ");
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($con);
?>
- Orientado a objetos:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//consulta query
$sql = "SELECT firstname, lastname, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table border=1><tr><th>Nombre</th>";
echo "<th>Apellido</th><th>Correo</th></tr>";
// salida de datos de cada fila
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["firstname"]."</td>";
echo "<td>".$row["lastname"]."</td>";
echo "<td>".$row["email"]."</td></tr>";
}
echo "</table>";
}
$conn->close();
?>
3. Operaciones de control de datos
Cuando existen tablas de base de datos, la información es almacenada en forma de tablas,
desde el sitio web también puede controlar operaciones para manipular la información
almacenada, siendo las más conocidas:
Sintaxis:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (valor_numerico, ‘valor_caracter’, ‘valor_fecha’,...)
Sintaxis:
UPDATE table_name SET column1= valor_numerico, column2=‘valor_caracter’,... WHERE columna=valor
Sintaxis:
DELETE FROM table_name WHERE columna = valor
4. Insertar datos desde sitio web
- Orientado a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$conn->close();
?>
- Forma procedimental
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
5. Actualizar datos desde un sitio web
- Orientado a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$conn->close();
?>
- Forma procedimental
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
6. Borrar datos desde una tabla
- Orientado a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$conn->close();
?>
- Forma procedimental
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
7. Manejo de excepciones PDO (try … catch…)
Permite manejar cualquier tipo de errores que podrían ocurrir durante la ejecucion de un
programa y pudieran afectar a la base de datos.
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
$stmt->execute();
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";
// use exec() because no results are returned
$conn->exec($sql);
echo "Record deleted successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
8. Formularios
Los formularios permiten a los usuarios, quienes se encargan de manipular el sistema web, en
enviar información al servidor o a la base de datos, poseyendo la siguiente estructura:
- Etiqueta de inicio y cierre: Como cualquier etiqueta en HTML, debe de ser apertura do
y cerrado, en esta sección realiza tareas como indicar hacia va a enviar la información y
de qué forma enviara la información
Sintaxis:
<FORM ACTION=mailto:email METHOD="POST" ENCTYPE = "TEXT/PLAIN"> … </FORM>
Donde:
- ACTION: Indica que acción deberá de tomar, como enviar a correo, ejecutar algun servicio del servidor o
enviar información a un sitio web respectivo.
- METHOD: (Valores: “GET” o “POST”) Indica que los datos sean enviados inmediatamente hacia un lugar
establecido, mostrando públicamente (GET) o no (POST) los parámetros con valores a enviar
- ENCTYPE: Expecifica como los datos deben de ser codificados
o text/plain : Las respuestas se leen como archivos de texto legibles y sin codificar, los espacios
entre cada respuesta son separados con el operador “+”
o multipart/form-data: Ningun carácter es codificado, empleado cuando se va a enviar una imagen
o archivo
o application/x-www-form-urlencoded: Viene por defecto, todos los caracteres son codificados
Cuerpo de formulario
Son los distintos objetos que se tendrá a disposición para poder enviar o recibir datos,
siendo los más resaltantes:
o <input> :
type="text": Introduce contenido de texto de hasta 20 caracteres por
defecto para enviar
type=" file": Permite buscar archivos, imágenes, etc.
type="checkbox": Confirmar una o varias opciones determinadas
type="radio": Elegir una opción entre varias
type="password": Introduce contenido de texto oculto, usado
normalmente para introducir contraseñas
type="button": Introduce botones al formulario, siendo necesarios
para enviar informacion o llamar a alguna funcion
type="reset": Elimina toda informacion ingresada en el formulario
type="image ": Define una imagen como un botón de envio de datos
type=" hidden": Permite emplear valores no visibles que se enviaran
junto con los datos del formulario
type="submit": Enviar todo el contenido de informacion
o <textarea>: Introduce contenido de texto de gran longitud para enviar
o <button>: Permite definir más propiedades de un boton
o <select>: Es una lista desplegable, el cual se debe de seleccionar el valor a
enviar, cada opción esta representado por la etiqueta <option>, si se requiere
agrupar las opciones, se emplea <optgroup> para separar por secciones el
menú desplegable
o <fieldset>: Permite agrupar elementos de un formulario
o <label> : Permite etiquetar valores, provenientes desde base de datos o
simples caracteres de texto.
Etiquetas Input:
<form action="/action_page.php">
Username: <input type="text" name="usrname"><br>
Select a file: <input type="file" name="myFile"><br>
<input type="checkbox" name="vehicle1" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle2" value="Car"> I have a car<br>
<input type="checkbox" name="vehicle3" value="Boat" checked> I have a boat<br>
<input type="radio" name="gender" value="male"> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="other"> Other <br>
<input type="password" name="pwd"> <br>
<input type="button" value="Click me" onclick="submit()"> <br>
<input type="reset"> <br>
<input type="image" src="img_submit.gif" alt="Submit"> <br>
<input type="hidden" id="custId" name="custId" value="3487"><br>
<input type="submit" value="Submit">
</form>
Areas de Texto:
<textarea rows="4" cols="50">
Se muestra una lista enorme de caracteres, asi como comentarios.
</textarea>
Botones:
<form action="/action_page.php" method="get">
Choose your favorite subject:
<button name="subject" type="submit" value="HTML">HTML</button>
<button name="subject" type="submit" value="CSS">CSS</button>
</form>
<form action="/action_page.php" method="get">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<button type="submit" value="Submit">Submit</button>
<button type="reset" value="Reset">Reset</button>
</form>
<button type="button" disabled>Este boton esta deshabilitado</button>
Selección
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi" selected>Audi</option>
</select>
<select>
<optgroup label="Swedish Cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</optgroup>
<optgroup label="German Cars">
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</optgroup>
</select>
<select disabled>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
Pestañas de formulario:
<form>
<fieldset>
<legend>Personalia:</legend>
Name: <input type="text"><br>
Email: <input type="text"><br>
Date of birth: <input type="text">
</fieldset>
</form>
Etiquetas
<form action="/action_page.php">
<label for="male">Male</label>
<input type="radio" name="gender" id="male" value="male"><br>
<label for="female">Female</label>
<input type="radio" name="gender" id="female" value="female"><br>
<label for="other">Other</label>
<input type="radio" name="gender" id="other" value="other"><br><br>
<input type="submit" value="Submit">
</form>
9. Variables globales
Son variables integradas que siempre están disponibles en todos los ámbitos, estas variables
permiten capturar datos que fueron enviados desde otras fuentes.
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
$ _SERVER ['PHP_SELF'] Devuelve el nombre del archivo del script que se está
ejecutando actualmente
$ _SERVER ['GATEWAY_INTERFACE'] Devuelve la versión de la Interfaz de puerta de enlace
común (CGI) que usa el servidor
$ _SERVER ['SERVER_ADDR'] Devuelve la dirección IP del servidor host
$ _SERVER ['SERVER_NAME'] Devuelve el nombre del servidor host (como
www.w3schools.com)
$ _SERVER ['SERVER_SOFTWARE'] Devuelve la cadena de identificación del servidor (como
Apache / 2.2.24)
$ _SERVER ['SERVER_PROTOCOL'] Devuelve el nombre y la revisión del protocolo de
información (como HTTP / 1.1)
$ _SERVER ['REQUEST_METHOD'] Devuelve el método de solicitud utilizado para acceder a
la página (como POST)
$ _SERVER ['REQUEST_TIME'] Devuelve la marca de tiempo del inicio de la solicitud
(como 1377687496)
$ _SERVER ['QUERY_STRING'] Devuelve la cadena de consulta si se accede a la página a
través de una cadena de consulta
$ _SERVER ['HTTP_ACCEPT'] Devuelve el encabezado Aceptar de la solicitud actual
$ _SERVER ['HTTP_ACCEPT_CHARSET'] Devuelve el encabezado Accept_Charset de la solicitud
actual (como utf-8, ISO-8859-1)
$ _SERVER ['HTTP_HOST'] Devuelve el encabezado del Host de la solicitud actual
$ _SERVER ['HTTP_REFERER'] Devuelve la URL completa de la página desde la que se
llamó la página actual
$ _SERVER ['HTTPS'] Es el script consultado a través de un protocolo HTTP
seguro
$ _SERVER ['REMOTE_ADDR'] Devuelve la dirección IP desde donde el usuario está
viendo la página actual
$ _SERVER ['REMOTE_HOST'] Devuelve el nombre del Host desde donde el usuario
está viendo la página actual
$ _SERVER ['REMOTE_PORT'] Devuelve el puerto que se está utilizando en la máquina
del usuario para comunicarse con el servidor web
$ _SERVER ['SCRIPT_FILENAME'] Devuelve la ruta de acceso absoluta del script que se está
ejecutando actualmente
$ _SERVER ['SERVER_ADMIN'] Devuelve el valor otorgado a la directiva SERVER_ADMIN
en el archivo de configuración del servidor web, por
ejemplo: someone@w3schools.com
$ _SERVER ['SERVER_PORT'] Devuelve el puerto en la máquina del servidor que está
utilizando el servidor web para la comunicación (como
80)
$ _SERVER ['SERVER_SIGNATURE'] Devuelve la versión del servidor y el nombre del host
virtual que se agregan a las páginas generadas por el
servidor
$ _SERVER ['PATH_TRANSLATED'] Devuelve la ruta basada en el sistema de archivos al
script actual
$ _SERVER ['SCRIPT_NAME'] Devuelve la ruta del script actual
$ _SERVER ['SCRIPT_URI'] Devuelve el URI de la página actual
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
</body>
</html>
Una vez seleccionado el hipervínculo al sitio web (test_get.php), recibirá los datos inicados en
el mismo hipervínculo
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
file_uploads = On
</body>
</html>
<?php
//Se emplea la function isset() para determiner si el cookie sigue activo
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
- Actualizar cookies
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
//la function setcookie() modifica el cookie, debe de estar antes de la etiqueta <html>
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
- Borrar cookies
<?php
// la function setcookie tambien sirve para establecer fecha de expiración a una hora atras
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
</body>
</html>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
demo_session2.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Muestra variable de session que se mostro en la pagina anterior
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
// Otra forma de mostrar la variable de sesión:
print_r($_SESSION);
?>
</body>
</html>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
- Eliminar y destruir una variable de session
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Eliminar todas las variables de sesion
session_unset();
// Destruye la sesion
session_destroy();
?>
</body>
</html>