Mysql
 sql >> Database >  >> RDS >> Mysql

Come si usa una funzione MySQL definita dall'utente da PHP?

1 e 2 sono vicini, ma $result non conterrà il risultato della chiamata di funzione. Piuttosto, conterrà il cookie dei risultati della query. Puoi usare quel cookie per ottenere i dati effettivi, con mysql_fetch_row() . La chiamata di funzione restituisce solo un valore per l'istruzione select, proprio come "SELECT 42" o "SELECT a FROM MyTable". Quindi, per ottenere il risultato, utilizzeresti lo stesso meccanismo di qualsiasi altra query SQL che restituisce risultati; ovvero, usa il cookie e chiama mysql_fetch_row() . Quindi il tuo codice finale sarà simile a questo:

$result = mysql_query("select functionName($id)");
$row = mysql_fetch_row($result, $link);
$returnValue = $row[0];

Nota che non vuoi interpolare le variabili direttamente in una stringa SQL (che può essere un vettore per gli attacchi). Presumo, tuttavia, che questo codice sia solo a scopo di esempio.