In my previous post I was talking about how to install WAMP and create your DataBase. Here we will create a RESTfull web service with PHP.

We created our User table with some users in it. Now we want to get this user list in a “universal” way. It means any kind of code could potentially access our web service via JSON messages and the standard HTTP protocol.

Create the PHP REST service

When you installed WAMP, it created a WWW folder in the WAMP folder path (for example: C:\wamp\www). Create a new file called DbUsersApi.php for example and another one called DbSettings.php and open them with Notepad, Notepad++, Sublime Text or another text editor.

Paste this PHP code in DbSettings.php:

<?php

	//Allows CORS (cross domain requests)
	header("Access-Control-Allow-Origin: *");
	
	//Set all the parameters for MySql
	$user_name = "YOUR SQL USERNAME";
	$password = "YOUR SQL PASSWORD";
	$database = "YOUR SQL DATABASE NAME";
	$server = "127.0.0.1";
	
	//Connect to MySql
	$db_handle = mysql_connect($server, $user_name, $password);
	$db_found = mysql_select_db($database, $db_handle);
	if ($db_found) { /*print "<br/>Database Found: " . $database;*/ }
	else { print "<br/>Database NOT Found"; }
?>

Save it and open DbUsersApi.php and past this:

<?php include "DbSettings.php"; ?>
<?php

	function get_user_list()
	{
		//Query in the User SQL Table
		$SQL = "SELECT * FROM User";
		$result = mysql_query($SQL);
		$user_list = array();
		
		//Display the SQL result as an Array of Users
		while ( $db_field = mysql_fetch_assoc($result) ) {
			$user_list[] = array(
			"userid" => $db_field['userid'],
			"firstname" => $db_field['firstname'],
			"lastname" => $db_field['lastname']);
		}
	
		return $user_list;
	}
	
	//List of all the possible method calls from the URL
	$possible_url = array( "get_user_list");
	
	//By default the resulting value will be an error, until it change by the correct one
	$value = "An error has occurred (is this action included in possible URLs ?)";
	
	//Check if the call is correct and if the parameter of the call is included in the possible URL's
	if (isset($_GET["action"]) && in_array($_GET["action"], $possible_url))
	{
		switch ($_GET["action"])
		{
			case "get_user_list":
			$value = get_user_list();
			exit(json_encode(array("user_list" => $value)));
			break;
		}
	}
	
	//return JSON array
	exit(json_encode($value));
?>

Now if you go in a web browser and you put this address:

http://localhost/DbUsersApi.php?action=get_user_list

Then you should see the JSON result of your users in the database.

See my post about how to consume this web service with Javascript.