Cómo devolver datos de servicio web desde una base de datos
Un uso frecuente de los servicios web es para recuperar información de una base de datos. Aquí, nos fijamos en la devolución de datos simples a partir de una base de datos. Que va a utilizar una base de datos que marca si un determinado sitio web está en marcha y funcionamiento.
Crear la base de datos
El servicio web, entonces simplemente devuelve "Up" o "Down" basado en el contenido de la tabla de base de datos. Se utiliza una base de datos llamada sitios para este ejemplo. Por lo tanto, el primer paso es crear la propia base de datos, con el comando:
mysqladmin -u lt;yourUser> -p Crear sitios
los
La tabla de base de datos se llamará siteStatus y el CREAR declaración para ello es la siguiente:
CREATE TABLE siteStatus (INT Identificación NOT NULL PRIMARY KEY AUTO_INCREMENT, siteURL VARCHAR (255), siteStatus VARCHAR (10)) -
Usted puede entrar en ese SQL en MySQL Command Line Interface (CLI) para crear la tabla. Asegúrese de conectar o utilizar el sitios de base de datos al crear la tabla, con el comando:
CONECTAR sitios-
o
USO sitios-
Una vez que la base de datos se ha creado, una sola fila puede ser añadido para esta demostración:
INSERT INTO siteStatus (siteURL, siteStatus) VALUES ('http: //braingia.org','Up') -
Crear el servicio Web
El servicio web se crea mediante el establecimiento de la conexión de MySQL, la consulta de la base de datos y devolver los datos. Por supuesto, también hay control de errores, en caso de que algo va mal con la consulta.
Este es el código para la creación de este servicio web.
? lt; php $ cabecera = "Content-Type: application / json" -header ($ header) - $ dblink = mysqli_connect ('localhost', 'USUARIO', 'password', 'sitios') - if ($ dblink! ) {$ fila = array ("siteStatus" => "Error de base de datos") - json_encode print ($ fila) -} else {$ query = "SELECT siteStatus DESDE DONDE siteStatus siteURL = 'http://braingia.org'" - if ($ resultado = mysqli_query ($ dblink, $ consulta)) {$ row = $ result-> fetch_array (MYSQLI_ASSOC) -si (is_null ($ fila)) {$ fila = array ("siteStatus" => "Error - Sitio Not Found ") -}} else {$ fila = array (" siteStatus "=>" Error General ") -} json_encode print ($ fila) -mysqli_close ($ dblink) -} // else condición final (para la conexión de base de datos) ?>
El código contiene una buena cantidad de control de errores, incluyendo gastos de envío si la conexión de base de datos no se puede establecer, si hay un problema con la consulta, o si no se ha encontrado el sitio de errores. En todos estos casos, el resultado final es que la salida se envía al usuario gracias a la json_encode ($ fila).
Este es un punto importante con los servicios web: Deja de salida trasera al consumidor de servicios Web que indica que hubo un error, en lugar de simplemente salir.
Siempre debe incluir comentarios en la salida del servicio web para las condiciones de error de manera que la persona que llama al servicio web puede manejar el error.