Per mantenere la mia domanda breve e precisa, considera questo:
$relation = $mysql->query("SELECT relation($loggeduser, $requesteduser) AS a")->fetch_assoc()['a'];
if ($relation != BLOCKED)
{
return $mysql->query("SELECT stuff FROM sometable WHERE powerlevel>9000 LIMIT 39");
} else {
return '{"error":"not enough jquery"}';
}
Dove relation
è una funzione MySQL. Quando questo approccio sarebbe meglio di qualcosa del genere:
$stuff = $mysql->query("SELECT getstuff($loggeduser, $requesteduser) AS a")->fetch_assoc()['a'];
return ($stuff != null) ? $stuff : '{"error":"stop it"}';
Dove getstuff
è una funzione MySQL che fa semplicemente tutto ciò che il primo codice farebbe.
In questo scenario, il secondo sembra avere molto più senso. In realtà, la seconda ha senso per tanti altri scenari che posso immaginare al punto in cui si può avere un'app web composta essenzialmente da sole funzioni MySQL che si occupano di quasi tutto ciò che serve (ad esempio getUser, getFollowers, pageInfo, ecc.) .
Tuttavia, mi manca sicuramente qualcosa, e la mia domanda è questa: quando dovrei non usare le funzioni MySQL su operazioni di scripting lato server? Puoi omettere l'ovvio (cioè salvare / elaborare file, ecc.).