Skip to content

Instantly share code, notes, and snippets.

@TorbenKoehn
Created July 16, 2013 12:48
Show Gist options
  • Save TorbenKoehn/6008411 to your computer and use it in GitHub Desktop.
Save TorbenKoehn/6008411 to your computer and use it in GitHub Desktop.
<?php
/*
* Die Daten in $_GET befinden sich in der URL
* http://meine-domain.com/api.php?action=test&nocheins=test2
* Hier ist
* $_GET[ 'action' ] === 'test'
* $_GET[ 'nocheins' ] === 'test2'
*
* Die Daten vom POST request befinden sich im Request Body
* $_POST[ 'email' ] === '[email protected]'
*
*/
//Verbindung zu einer MySQL Datenbank?
$db = new PDO( 'mysql:host=localhost;dbname=test', 'user', 'pass' );
//Die Aktion, die durchgeführt werden soll
//Wenn keine Action gesetzt ist, ist sie automatisch 'hole-daten'
$action = empty( $_GET[ 'action' ] ) ? 'hole-daten' : $_GET[ 'action' ];
$result = array();
switch( $action ) {
//Wenn $action === 'hole-daten'
//z.B. http://meine-domain.com/api.php?action=hole-daten
// http://meine-domain.com/api.php?action=hole-daten&id=14
case 'hole-daten':
//Die ID (Wenn eine definiert wurde, ansonsten null)
$id = empty( $_GET[ 'id' ] ) ? null : intval( $_GET[ 'id' ] );
$stmt = null;
if( !empty( $id ) ) { //wollen wir spezifische Daten?
$stmt = $db->prepare( 'select * from my_table where id=?' );
$stmt->execute( $id );
} else { //oder ALLE daten?
$stmt = $db->prepare( 'select * from my_table' );
$stmt->execute();
}
$result = array( 'success' => true, 'data' => $stmt->fetchAll() );
break;
//Wenn $action === 'schreibe-daten'
//z.B. http://meine-domain.com/api.php?action=schreibe-daten&id=15
case 'schreibe-daten':
//hier muss eine ID gesetzt sein, wir wollen immer nur einen
//Datensatz aktualisieren
$id = empty( $_GET[ 'id' ] ) ? null : intval( $_GET[ 'id' ] );
//Die Daten liegen im Request Body, POST
$wert = empty( $_POST[ 'wert' ] ) ? '' : $_POST[ 'wert' ];
if( empty( $id ) )
$result = array(
'success' => false,
'message' => 'Keine ID definiert!'
);
else if( empty( $wert ) )
$result = array(
'success' => false,
'message' => 'Kein Wert definiert!'
);
else {
$stmt = $db->prepare( 'update my_table set my_field=?' );
$stmt->execute( $wert );
$result = array( 'success' => true );
}
break;
//Wenn keine Aktion oder sie existiert nicht
default:
$result = array(
'success' => false,
'message' => "Aktion $action existiert gar nicht!"
);
}
//Ausgabe der Daten im JSON Format
exit( json_encode( $result ) );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment