PHP - MySQL, brevissimo tutorial su Stored Procedures e Stored Functions
Stored Procedures e Stored Functions sono elementi presenti da anni in PostgreSQL ed in altri DBMS e servono per far effettuare delle operazioni predefinite al DBMS, passando dei parametri in input e ricevendone degli altri in output, ma introdotti in MYSQL solo dalla versione 5.0 e successive, che sui server Tesene installiamo insieme a PHP 5.3.
Questo post, come altri, prende ispirazione dalla soluzione di problemi comuni nello sviluppo di software, ma di cui non è semplice trovare una soluzione dettagliata e funzionante in rete.
Dal punto di vista concettuale, una Stored Function ed una Stored Procedure sono cose molto simili tra di loro, però oltre ad avere una sintassi diversa richiedono anche un diverso trattamento in PHP.
Dato che questo non è un manuale on line, per i dettagli rimandiamo alle apposite pagine di documentazione:
- http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html per MYSQL 5.0
- http://it.php.net/mysqli per PHP
Vediamo prima l'esempio più semplice, la Stored Function:
In MYSQL:
DETERMINISTIC
RETURN CONCAT('Hello, ',s,'!')
while ($row = $result->fetch_row()) {
var_dump($row);
}
BEGIN
SELECT COUNT(*) INTO param1 FROM test;
END
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($mysqli->more_results()) {
printf("—————–\n<br/>\n");
}
} while ($mysqli->next_result());
}
Aumenta la diffusione di questo articolo View blog reactions
