API zum Löschen von Elementen für die iOS-App (Aufrufe an PHP für den API-Aufruf)Php

PHP-Programmierer chatten hier
Anonymous
 API zum Löschen von Elementen für die iOS-App (Aufrufe an PHP für den API-Aufruf)

Post by Anonymous »

Hier ist unser aktuelles Setup. Wir haben eine iOS-App, die API-Aufrufe an mein PHP-Skript durchführt, das die Anfrage verarbeitet und eine Datenbank über PDO und MySQL abfragt. In diesem Fall gibt es also eine update_items.php-API, an die die iOS-App Parameterwerte sendet. Je nachdem, ob der Benutzer ein Element aktualisiert oder löscht, behandelt die API dies entsprechend und fragt die Datenbank mehrmals ab (alles in einer Anfrage). ).

Hier ist mein Dilemma. Das Update-Bit funktioniert, aber wie kann ich dieselbe Update-API verwenden, um ein Element per POST-Anfrage zu löschen? Eine schnelle Abhilfe, die sich mein iOS-Entwickler ausgedacht hat, besteht darin, dass ein Benutzer, wenn er zum Löschen eines Elements wischt, den Namen des Elements als „DELETE“ oder etwas in dieser Richtung sendet. Dadurch wird eine Löschabfrage für den Datenbankeintrag initiiert. Das gefällt mir nicht, denn jeder könnte das herausfinden und das System ausnutzen. Wenn ich beispielsweise ein Element bearbeite, muss ich lediglich DELETE für den Namen des Elements eingeben und die API würde ihn wie eine Löschanforderung verarbeiten. Es muss einen besseren Weg geben und ich würde mich über jeden Vorschlag freuen. Unten ist mein aktueller PHP-Code, der den API-Aufruf verarbeitet. Mein Vorschlag war jedoch, gleichzeitig zwei API-Aufrufe zu senden, nachdem ein Benutzer auf FERTIG geklickt hat, um seine Artikelseite zu bearbeiten. Eine für update.php, wenn der Benutzer ein Element aktualisiert, und eine andere für delete.php, wenn ein Benutzer beschließt, ein Element zu löschen.

Code: Select all

// now check for updating/deleting ingredients for the menu item
if( isset($the_request['id']) ) {
/*
iterate through avalialable values because there could be multiple ingredient ids involved. handle it.
*/
for( $i=0;$i $the_request['id'][$i]
);
// the query
$query = 'DELETE FROM TABLE WHERE id = :id';
break;
default:
// assign passed parameters for query
$params = array(
':name'  => $the_request['name'][$i],
':price' => $the_request['price'][$i]
);
// Remove the empty values
$params = array_filter($params, function($param) { return !empty($param); });
// Build an array of SET parameters
$set = array_map(function($key) {
return sprintf('%s = %s', substr($key, 1), $key);
}, array_keys($params));
// don't forget the id
$params[':id'] = $the_request['id'][$i];
// the query
$query = sprintf('UPDATE TABLE SET %s WHERE id = :id', implode(', ', $set));
}
// prepare statement
if( $ingStmt = $dbh->prepare($query) ) {
$ingStmt->execute($params);
} else {
echo json_encode(array('error' => $dbh->errorInfo().__LINE__));
}
}
$ingStmt->closeCursor();
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post