ISTITUTO TECNICO INDUSTRIALE STATALE
“G. Chilesotti” - Thiene (VI)
DIPARTIMENTO DI INFORMATICA E SISTEMI
Guida rapida alla sintassi di
SQL
PHP
Delphi
HTML
XML
Anno Scolastico 2004/2005
Indice
Indice..................................................... 2
Strutture di controllo .................................. 11
Sintassi (semplificata) SQL ........................ 1
if .................................................................... 11
Tipi e domini................................................1
cast ................................................................. 1
create domain ................................................... 1
alter domain ..................................................... 2
drop domain ..................................................... 2
Comandi per la definizione dello schema ..........2
create schema................................................... 2
drop schema ..................................................... 2
create table ...................................................... 2
alter table......................................................... 2
drop table......................................................... 3
create view ....................................................... 3
drop view ......................................................... 3
create assertion................................................. 3
drop assertion ................................................... 3
Interrogazioni in SQL ....................................3
select ............................................................... 3
Interrogazioni di tipo insiemistico ........................ 4
Manipolazione dei dati in SQL .........................4
insert ............................................................... 4
delete .............................................................. 4
update ............................................................. 4
Stored Procedures e Triggers (Interbase) .........5
Stored Procedures ............................................. 5
Triggers ........................................................... 5
Generatori in Interbase ...................................... 6
Indici ..........................................................6
create index...................................................... 6
drop index ........................................................ 6
Autorizzazioni in SQL ....................................6
Concessione dei privilegi..................................... 6
Revoca dei privilegi............................................ 6
Istruzioni principali PHP............................. 7
else ................................................................ 11
elseif (oppure else if) ........................................ 11
Sintassi alternativa per le strutture di controllo .... 11
while............................................................... 12
do..while ......................................................... 12
for .................................................................. 12
foreach ........................................................... 12
break .............................................................. 12
continue .......................................................... 13
switch ............................................................. 13
return ............................................................. 13
require() ......................................................... 13
include() ......................................................... 13
require_once() ................................................. 14
include_once() ................................................. 14
Funzioni .................................................... 14
Funzioni definite dall’utente ............................... 14
Argomenti delle funzioni .................................... 14
Costruire argomenti passati per riferimento ......... 15
Liste di argomenti a lunghezza variabile .............. 15
Valori restituiti ................................................. 15
Funzioni di Mail .......................................... 15
mail ................................................................ 15
Funzioni Matematiche ................................. 16
abs ................................................................. 16
acos................................................................ 16
asin ................................................................ 16
atan................................................................ 16
base_convert ................................................... 16
bindec............................................................. 16
ceil ................................................................. 16
cos ................................................................. 16
decbin............................................................. 17
dechex ............................................................ 17
Sintassi Fondamentale ..................................7
decoct............................................................. 17
Modi per uscire dalla modalità HTML .................... 7
deg2rad .......................................................... 17
Separazione delle istruzioni................................. 8
exp................................................................. 17
Commenti......................................................... 8
floor ............................................................... 17
Variabili ......................................................8
fmod............................................................... 17
Predefined variables........................................... 8
getrandmax ..................................................... 17
Operatori ....................................................9
hexdec ............................................................ 18
Precedenza degli operatori.................................. 9
is_finite ........................................................... 18
Operatori aritmetici...........................................10
is_infinite ........................................................ 18
Operatori bitwise ..............................................10
is_nan............................................................. 18
Operatori di confronto .......................................10
lcg_value......................................................... 18
Operatori di controllo errori................................10
log10 .............................................................. 18
Operatori di esecuzione .....................................10
log.................................................................. 18
Operatori di incremento/decremento...................10
max................................................................ 18
Operatori logici.................................................11
min................................................................. 19
Operatori di stringa...........................................11
octdec............................................................. 19
pi ...................................................................19
mysql_field_name ............................................ 27
pow ................................................................19
mysql_field_seek.............................................. 27
rad2deg ..........................................................19
mysql_field_table ............................................. 27
rand................................................................19
mysql_field_type .............................................. 28
round..............................................................19
mysql_free_result............................................. 28
sin ..................................................................20
mysql_get_client_info ....................................... 28
sqrt ................................................................20
mysql_get_host_info......................................... 28
srand ..............................................................20
mysql_get_proto_info ....................................... 28
tan .................................................................20
mysql_get_server_info...................................... 28
Funzioni InterBase...................................... 20
mysql_info....................................................... 28
ibase_blob_add ................................................20
mysql_insert_id................................................ 29
ibase_blob_cancel ............................................20
mysql_list_dbs ................................................. 29
ibase_blob_close ..............................................20
mysql_list_fields............................................... 29
ibase_blob_create ............................................20
mysql_list_processes ........................................ 29
ibase_blob_echo...............................................20
mysql_list_tables.............................................. 29
ibase_blob_get.................................................21
mysql_num_fields ............................................ 29
ibase_blob_import ............................................21
mysql_num_rows ............................................. 30
ibase_blob_info ................................................21
mysql_pconnect ............................................... 30
ibase_blob_open ..............................................21
mysql_ping...................................................... 30
ibase_close ......................................................21
mysql_query.................................................... 30
ibase_commit ..................................................21
mysql_real_escape_string ................................. 31
ibase_connect ..................................................21
mysql_result .................................................... 31
ibase_errmsg ...................................................21
mysql_select_db .............................................. 31
ibase_execute ..................................................22
mysql_stat ...................................................... 31
ibase_fetch_object............................................22
mysql_tablename ............................................. 31
ibase_fetch_row ...............................................22
mysql_thread_id .............................................. 32
ibase_field_info ................................................22
mysql_unbuffered_query ................................... 32
ibase_free_query..............................................22
Funzioni Stringa ......................................... 33
ibase_free_result..............................................22
addcslashes ..................................................... 33
ibase_num_fields..............................................22
addslashes ...................................................... 33
ibase_pconnect ................................................22
bin2hex........................................................... 33
ibase_prepare ..................................................23
chop ............................................................... 33
ibase_query .....................................................23
chr ................................................................. 33
ibase_rollback ..................................................23
chunk_split ...................................................... 33
ibase_timefmt ..................................................23
convert_cyr_string............................................ 33
ibase_trans......................................................23
count_chars..................................................... 34
Funzioni MySQL.......................................... 23
crc32 .............................................................. 34
mysql_affected_rows ........................................23
crypt............................................................... 34
mysql_change_user ..........................................23
echo ............................................................... 34
mysql_client_encoding ......................................24
explode ........................................................... 35
mysql_close .....................................................24
fprintf ............................................................. 35
mysql_connect .................................................24
htmlspecialchars .............................................. 35
mysql_create_db ..............................................24
implode........................................................... 36
mysql_data_seek..............................................24
join................................................................. 36
mysql_db_name ...............................................25
ltrim ............................................................... 36
mysql_drop_db ................................................25
md5................................................................ 36
mysql_errno ....................................................25
number_format ................................................ 36
mysql_error .....................................................25
ord ................................................................. 37
mysql_escape_string ........................................25
parse_str......................................................... 37
mysql_fetch_array............................................26
print ............................................................... 37
mysql_fetch_assoc ...........................................26
printf .............................................................. 37
mysql_fetch_field .............................................26
rtrim ............................................................... 37
mysql_fetch_lengths .........................................26
sprintf ............................................................. 37
mysql_fetch_object...........................................27
sscanf ............................................................. 38
mysql_fetch_row ..............................................27
str_pad ........................................................... 38
mysql_field_flags..............................................27
str_repeat ....................................................... 38
mysql_field_len ................................................27
str_replace ...................................................... 38
str_shuffle .......................................................39
TIBTable ......................................................... 51
str_word_count ................................................39
TIBQuery......................................................... 52
strchr..............................................................39
TIBDataSet...................................................... 53
strcmp ............................................................39
Principali tag HTML ................................. 55
strlen ..............................................................39
Elementi di base ........................................ 55
strpos .............................................................39
strrchr.............................................................39
strrev..............................................................40
strtok..............................................................40
strtolower ........................................................40
strtoupper .......................................................40
Sfondi e colori............................................ 55
Principali colori................................................. 55
Caratteri speciali ........................................ 55
Formattazione del testo............................... 56
Collegamenti ed immagini ........................... 56
strtr ................................................................40
Segni di paragrafo e separatori .................... 57
substr_count....................................................40
Liste......................................................... 57
substr_replace .................................................41
Tabelle ..................................................... 57
substr .............................................................41
Moduli ...................................................... 58
trim ................................................................41
Frame ...................................................... 59
ucfirst .............................................................41
ComPort ............................................... 60
ucwords ..........................................................41
wordwrap ........................................................42
Componenti data-aware Delphi ................ 43
Componenti ADO........................................ 43
TADOConnection ..............................................43
TADOCommand................................................45
TADOTable ......................................................47
Componenti SOCKET............................... 61
TClientSocket ............................................ 62
TServerSocket ........................................... 64
XML...................................................... 66
Struttura documento XML ............................ 66
Schema di validità documento XML ............... 66
TADOQuery......................................................49
Componente TXMLDocument ....................... 66
Componenti Interbase................................. 50
Componente IOPort ................................ 67
TIBDatabase ....................................................50
Simbologia LAN...................................... 67
TIBTransaction .................................................50
Sintassi (semplificata) SQL
Tipi e domini
STRINGHE DI CARATTERI
CHARACTER(n)
oppure CHAR(n)
CHARACTER VARYING(n)
oppure VARCHAR(n)
Stringa di lunghezza fissa di esattamente n caratteri (n>0). CHAR equivale a CHAR(1)
Stringa di lunghezza variabile fino a n caratteri (n>0)
stringhe di bit (introdotte da SQL-2)
BIT(n)
Stringa di un numero fisso di n bit (n>0) → usato per i flag. BIT equivale a BIT(1)
BIT VARYING(n)
Stringa di lunghezza variabile fino a n bit (n>0)
TIPI NUMERICI ESATTI
Numero decimale, p cifre e il segno, con un numero q di cifre dopo la virgola
(0<=q<=p,p>0), la precisione è esattamente di p cifre.
NUMERIC(p,q)
Es.: con NUMERIC(6,3) si potranno rappresentare i numeri tra –999,999 a +999,999
NUMERIC(p) equivale a NUMERIC(p,0)
NUMERIC il sistema usa un valore caratteristico dell'implementazione
DECIMAL(p,q)
oppure DEC(p,q)
INTEGER
oppure INT
Numero decimale, m cifre e il segno, con un numero q di cifre dopo la virgola
(0<=q<=p<=m,p>0), la precisione è di almeno p cifre (cioè l'implementazione può
adottare più cifre)
DECIMAL(p) equivale a DECIMAL (p,0)
DECIMAL il sistema usa un valore caratteristico dell'implementazione
intero con segno (implementation defined)
SMALLINT
intero con segno (implementation defined)
FLOAT(p)
Numero rappresentato con virgola mobile con la precisione per la mantissa di p cifre
(esempio: 0,17E1015). FLOAT equivale a FLOAT(p1) CON p1 “implementation defined”
REAL
equivale a FLOAT(p2) CON p2 “implementation defined”
DOUBLE PRECISION
equivale a FLOAT(p3) CON p3 “implementation defined”
TIPI NUMERICI APPROSSIMATI
date e ora (introdotte da SQL-2)
DATE
data
TIME
ora
TIMESTAMP
data e ora
cast
cast(espressione as tipo)
create domain
create domain nome_dominio [as] tipo [default <valore_default> ]
[not null] [check(condizione_check)]
<condizione_check> ::=
VALUE <operatore> val
| VALUE [not] between val and val
| VALUE [not] like val
| VALUE [not] in ( val {, val } )
| VALUE is[not] null
| [not] exists( <selezione> )
| not <condizione_check>
| <condizione_check> or <condizione_check>
1
SQL
| <condizione_check> and <condizione_check>
<valore_default> ::= costante | user | null
<operatore> ::= < | > | = | <> | <= | >= | like
alter domain
alter domain nome_dominio
set default <valore_default>
| drop default
| add constraint check(nome_condizione_ check)
| drop constraint
<valore_default> ::= costante | user | null
drop domain
drop domain nome_dominio [restrict | cascade]
Comandi per la definizione dello schema
create schema
create schema [ nome_schema ] [ [authorization] nome_utente]
definizione_degli_elementi_dello_schema
drop schema
drop schema nome_schema [restrict | cascade]
create table
create table nome_tabella
(
nome_colonna tipo_colonna [not null]
{ , nome_colonna tipo_colonna [not null] }
{ , <vincolo_tabella> }
)
<vincolo_tabella> ::=
primary key ( lista_colonne )
| unique ( lista_colonne )
| foreign key (lista_colonne) references nome_tabella [( lista_colonne ) ]
[on delete <tipo_comportamento>] [on update <tipo_comportamento>]
| check ( <condizione_check> )
<tipo_comportamento> ::= no action | cascade | set default | set null
alter table
alter table nome_tabella
add nome_colonna tipo_colonna [not null]
| drop nome_colonna
| add [constraint nome_vincolo] def_vincolo
| drop constraint nome_vincolo
2
SQL
drop table
drop table nome_tabella [restrict | cascade]
create view
create view [( lista_nomi_colonne )] nome_vista as <selezione>
drop view
drop view nome_vista [restrict | cascade]
create assertion
create assertion nome_vincolo check (condizione)
drop assertion
drop assertion nome_vincolo
Interrogazioni in SQL
select
<selezione> ::=
select [distinct | all] <lista_clausola_selezione>
from <riferimento_tabella> [[as] identificatore]
{, < riferimento_tabella> [[as] identificatore] }
[where <condizione_ricerca>]
[group by nome_colonna {, nome_colonna }
[having <condizione_ricerca>]
[order by <lista_ordinamento>]
<lista_clausola_selezione> ::= * | identificatore.* | <val> [as] identificatore]
{, <val> [as] identificatore] }
<val> ::= [identificato.]nome_colonna
| null | costante | espressione | :variabile | <funzione>
<funzione> ::= count (* | [all]
| sum ([all] <val> | distinct
| avg ([all] <val> | distinct
| max ([all] <val> | distinct
| min ([all] <val> | distinct
| cast (<val> as tipo)
| upper (<val>)
<val> | distinct <val>)
<val>)
<val>)
<val>)
<val>)
<riferimento_tabella> ::=
nome_tabella | nome_vista | stored_procedure | <tabella_giunzione>
<tabella_giunzione> ::=
nome_tabella <tipo_join> join nome_tabella on <condizione> |
(<tabella_giunzione>)
<tipo_join> ::= [inner] join | left outer | right outer | full outer
3
SQL
<condizione_ricerca> ::=
<val> <operatore> <val> | (<selezione_a_unico_valore>)}
| <val> <operatore> (<selezione_a_unico_valore>)
| <val> [not] between <val> and <val>
| <val> [not] like <val>
| <val> [not] in (<val> {,<val> } | <selezione>)
| <val> is [not] null
| <val> <operatore> <quantificatore>(<selezione>)
| exists (<selezione>)
| ( <condizione_ricerca> )
| not <condizione_ricerca>
| <condizione_ricerca> or <condizione_ricerca>
| <condizione_ricerca> and <condizione_ricerca>
<quantificatore> ::= all | some | any
<operatore> ::= {= | < | > | <= | >= | !< | !> | <> | !=}
<lista_ordinamento> ::= nome_colonna [asc | desc] {,<lista_ordinamento>}
Interrogazioni di tipo insiemistico
selezione_1
<operazione_insimistica> [ all ]
selezione_2
<operazione_insimistica> ::= union | intersect | except
gli operatori seguono le seguenti regole:
•
le clausole select che vengono combinate con l'operatore devono avere lo stesso numero di espressioni, e le
espressioni che vengono posizionate una sotto l'altra nel risultato finale devono avere tipi compatibili;
•
le clausole select non dovrebbero contenere distinct; quando viene usato un operatore insiemistico vengono
eliminate automaticamente le righe doppie e quindi l'aggiunta di distinct è superflua;
•
è possibile usare gli operatori insiemistici con le interrogazioni nidificate;
•
la clausola all viene utilizzata per ottenere anche le righe doppie
Manipolazione dei dati in SQL
insert
insert into nome_tabella [ ( lista_colonne ) ]
values( lista_valori ) | <selezione>
delete
delete from nome_tabella [ where <condizione> ]
update
update nome_tabella
set nome_colonna = espressione { , nome_colonna = espressione }
[ where <condizione> ]
4
SQL
Stored Procedures e Triggers (Interbase)
Stored Procedures
create procedure nome_procedura
[ ( param <tipo_dato> {,param <tipo_dato> } ) ]
[returns ( param <tipo_dato> {,param <tipo_dato> } )]
as
<corpo_procedura>
<corpo_procedura> ::=
[<lista_dichiarazione_variabili>]
<blocco>
<lista_dichiarazione_variabili> ::=
declare variable var <tipo_dato>; { declare variable var <tipo_dato>; }
<blocco> ::= begin
<istruzione_composta>
{ <istruzione_composta> }
end
<istruzione_composta> ::= <blocco> | istruzione;
<tipo_dato> ::=
smallint
| integer
| float
| double precision
| < decimal | numeric > [(precisione [, scala])]
| < date | time | timestamp >
| < char | character | character varying | varchar >
| [(int)] [character set charname]
| < nchar | national character | national char > [varying] [(int)]
Triggers
create trigger nome_trigger for { nome_tabella | nome_vista }
[ active | inactive ]
< before | after > < delete | insert | update >
[ position numero ]
as
<corpo_trigger>
<corpo_trigger> ::=
[<lista_dichiarazione_variabili>]
<blocco>
<lista_dichiarazione_variabili> ::=
declare variable var <tipo_dato>; { declare variable var <tipo_dato>; }
<blocco> ::= begin
<istruzione_composta>
{ <istruzione_composta> }
end
<istruzione_composta> ::= <blocco> | istruzione;
5
SQL
Generatori in Interbase
Un generatore è una variabile intera globale disponibile nel database (quindi deve avere un nome univoco nell’ambito
dello schema del database). Per creare un generatore si usa l’istruzione seguente:
create generator nome_generatore
inizialmente il generatore ha valore nullo. Per impostare un generatore ad uno specifico valore usare:
set generator nome_generatore to valore
Una volta creato un generatore, è possibile utilizzare la funzione gen_id per aggiornare il valore del generatore con
uno step specificato:
gen_id (nome_generatore, step)
questa funzione incrementa il valore corrente del generatore specificato dello step e ritorna il nuovo valore al
generatore.
Indici
create index
create [unique] index nome_indice on nome_tabella (lista_colonne)
drop index
drop index nome_indice
Autorizzazioni in SQL
Concessione dei privilegi
grant <elenco_privilegi>
on [ nome_tabella | nome_vista ]
to <elenco_utenti>
[ with grant option ]
<elenco_privilegi> ::=
select
| insert [(<nome_colonna>)]
| update [(<nome_colonna>)]
| delete [(<nome_colonna>)]
| references [(<nome_colonna>)]
<elenco_utenti> ::= nome_utente {, nome_utente } | public
Revoca dei privilegi
revoke [grant option for] <elenco_privilegi>
on [ nome_tabella | nome_vista ] from <elenco_utenti> [ restrict | cascade ]
6
SQL
Istruzioni principali PHP
Sintassi Fondamentale
Modi per uscire dalla modalità HTML
Quando il PHP inizia a esaminare un file, visualizzerà il contenuto del file sino a quando non incontra uno dei tag
speciali indicanti l'inizio del codice da interpretare come istruzioni PHP. A questo punto il parser eseguirà tutto il codice
trovato sino a quando non incontrerà i tag di chiusura, che indicano al parser di tornare alla modalità di
visualizzazione. Questo meccanismo permette di inserire codice PHP all'interno di codice HTML: tutto ciò che si trova
all'esterno dei tag PHP sarà lasciato inalterato, mentre tutto ciò che si trova all'interno sarà eseguito come codice PHP.
Esistono 4 set di tag che possono essere utilizzati per delimitare blocchi di codice PHP. Soltanto due di questi (<?php. .
.?> e <script language="php">. . .</script>) sono sempre disponibili; gli altri possono essere attivati o disattivati
tramite il file di configurazione php.ini. Sebbene i tag brevi o quelli in stile ASP possano essere pratici, il supporto di
questi non è garantito in tutte le versioni. Quindi, se si intende inserire codice PHP all'interno di testi XMl o XHTML,
occorre utilizzare <?php. . .?> per essere conformi allo standard XML.
I tag supportati dal PHP sono:
1.
<?php echo("se si vogliono produrre documenti XHTML o XML, si utilizzi questo modo\n"); ?>
2.
<? echo ("questo è il più semplice, ovvero come istruzione SGML\n"); ?>
<?= espressione ?> Questa è un'abbreviazione per "<? echo espressione ?>"
3.
<script language="php">
echo ("alcuni editor (tipo FrontPage) non
amano le istruzioni di elaborazione");
</script>
4.
<% echo ("Opzionalmente puoi utilizzare tag nello stile ASP"); %>
<%= $variable; # Questo è una abbreviazione per "<%echo .." %>
Il primo, <?php. . .?>, è il metodo preferenziale, dato che permette l'utilizzo del PHP all'interno di codice conforme a
specifiche XML come XHTML.
Il secondo metodo è disponibile solo se sono stati abilitati i tags abbreviati. Ciò può essere impostato sia utilizzando la
funzione short_tags() (solo PHP 3), sia abilitando nel file di configurazione del PHP l'opzione short_open_tag, oppure
compilando il PHP utilizzando l'opzione --enable-short-tags nel comando configure. Sebbene siano abilitati nel php.inidist riilasciato, l'uso dei tag brevi è vivamente sconsigliato.
Il quarto modo è disponibile solo se sono stati attivati nel file di configurazione i tag in stile ASP tramite l'opzione
asp_tags.
Il tag di chiusura di un blocco include il carattere di 'a capo' immediatamente seguente, se presente. Inoltre, il tag di
chiusura viene considerato automaticamente come punto e virgola; pertanto non occorre inserire il punto e virgola alla
fine dell'ultima riga del blocco php.
Il PHP permette strutture tipo le seguenti:
<?php
if ($expression) {
?>
<strong>Questa è vera.</strong>
<?php
} else {
?>
<strong>Questa è falsa.</strong>
<?php
}
?>
Questo esempio agisce come atteso, poichè il PHP rileva il tag di chiusura ?>, e da questo punto, inizia a dare in
output tutto ciò che trova fino a quando non rileva un'altro tag di apertura. Certamente l'esempio dato è macchinoso,
ma per l'output di grossi blocchi di testo, l'uscire dalla modalità di parsing PHP, è generalmente più efficiente piuttosto
che inviare il testo tramite ripetute funzioni echo() o print().
7
PHP
Separazione delle istruzioni
Le istruzioni sono separate come nel C o in Perl - ogni istruzione termina con un punto e virgola.
Il tag di chiusura (?>) implica anche la fine di un'istruzione, perciò le seguenti sono equivalenti:
<?php
echo "Questo ` un test";
?>
<?php echo "Questo ` un test" ?>
Commenti
Il PHP supporta i commenti dei linguaggi C, C++ e della shell Unix. Per esempio:
<?php
echo "Questo ` un test"; // Questo è un commento su una linea nella stile c++
/* Questo è un commento su più linee
ancora un'altra linea di commento */
echo "Questo è un altro test";
echo "Un ultimo test"; # Questo è un commento stile shell Unix
?>
Lo stile di commento su "una linea", attualmente commenta solo fino alla fine della linea o del blocco corrente di codice
PHP.
<h1>Questo è un <?# echo "semplice";?> esempio.</h1>
<p>L'intestazione qui sopra dirà 'Questo è un esempio'.
Occorre fare attenzione nel non annidare i commenti di stile C, situazione che si presenta quando si commentano
larghi blocchi di codice.
<?php
/*
echo "Questo è un test"; /* Questo commento causerà dei problemi */
*/
?>
Lo stile di commento su linea singola commenta il testo fino alla fine della riga oppure alla fine del blocco di codice
PHP, dipende da cosa si incontra prima. Questo significa che il codice HTML posizionato dopo // ?> SARA' visualizzato:
?> indica di uscire dal modo PHP e di ritornare in modalità HTML, e, quindi, // non hanno più effetto.
Variabili
Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is casesensitive.
Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore,
followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[azA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
Nota: For our purposes here, a letter is a-z, A-Z, and the ASCII characters from 127 through 255 (0x7f-0xff).
In PHP 3, variables are always assigned by value. That is to say, when you assign an expression to a variable, the
entire value of the original expression is copied into the destination variable. This means, for instance, that after
assigning one variable's value to another, changing one of those variables will have no effect on the other. For more
information on this kind of assignment, see the chapter on Expressions.
PHP 4 offers another way to assign values to variables: assign by reference. This means that the new variable simply
references (in other words, "becomes an alias for" or "points to") the original variable. Changes to the new variable
affect the original, and vice versa. This also means that no copying is performed; thus, the assignment happens more
quickly. However, any speedup will likely be noticed only in tight loops or when assigning large arrays or objects.
To assign by reference, simply prepend an ampersand (&) to the beginning of the variable which is being assigned (the
source variable).
One important thing to note is that only named variables may be assigned by reference.
PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example,
in Perl 'Z'+1 turns into 'AA', while in C 'Z'+1 turns into '[' { ord('Z') == 90, ord('[') == 91 ).
Predefined variables
PHP provides a large number of predefined variables to any script which it runs. Many of these variables, however,
cannot be fully documented as they are dependent upon which server is running, the version and setup of the server,
and other factors. Some of these variables will not be available when PHP is run on the command line. For a listing of
these variables, please see the section on Reserved Predefined Variables.
Attenzione: In PHP 4.2.0 and later, the default value for the PHP directive register_globals is off. This is a major
change in PHP. Having register_globals off affects the set of predefined variables available in the global scope. For
example, to get DOCUMENT_ROOT you'll use $_SERVER['DOCUMENT_ROOT'] instead of $DOCUMENT_ROOT, or
$_GET['id'] from the URL http://www.example.com/test.php?id=3 instead of $id, or $_ENV['HOME'] instead of $HOME.
For related information on this change, read the configuration entry for register_globals, the security chapter on Using
Register Globals , as well as the PHP 4.1.0 and 4.2.0 Release Announcements.
Using the available PHP Reserved Predefined Variables, like the superglobal arrays, is preferred.
8
PHP
From version 4.1.0 onward, PHP provides an additional set of predefined arrays containing variables from the web
server (if applicable), the environment, and user input. These new arrays are rather special in that they are
automatically global--i.e., automatically available in every scope. For this reason, they are often known as
'autoglobals' or 'superglobals'. (There is no mechanism in PHP for user-defined superglobals.) The superglobals are
listed below; however, for a listing of their contents and further discussion on PHP predefined variables and their
natures, please see the section Reserved Predefined Variables. Also, you'll notice how the older predefined variables
($HTTP_*_VARS) still exist.
Variable variables: Superglobals cannot be used as variable variables. If certain variables in variables_order are not
set, their appropriate PHP predefined arrays are also left empty.
Superglobals Description
$GLOBALS
Contains a reference to every variable which is currently available within the global scope of the script.
The keys of this array are the names of the global variables. $GLOBALS has existed since PHP 3.
$_SERVER
Variables set by the web server or otherwise directly related to the execution environment of the
current script. Analogous to the old $HTTP_SERVER_VARS array (which is still available, but
deprecated).
$_GET
Variables provided to the script via HTTP GET. Analogous to the old $HTTP_GET_VARS array (which is
still available, but deprecated).
$_POST
Variables provided to the script via HTTP POST. Analogous to the old $HTTP_POST_VARS array (which
is still available, but deprecated).
$_COOKIE
Variables provided to the script via HTTP cookies. Analogous to the old $HTTP_COOKIE_VARS array
(which is still available, but deprecated).
$_FILES
Variables provided to the script via HTTP post file uploads. Analogous to the old $HTTP_POST_FILES
array (which is still available, but deprecated). See POST method uploads for more information.
$_ENV
Variables provided to the script via the environment. Analogous to the old $HTTP_ENV_VARS array
(which is still available, but deprecated).
$_REQUEST
Variables provided to the script via any user input mechanism, and which therefore cannot be trusted.
The presence and order of variable inclusion in this array is defined according to the variables_order
configuration directive. This array has no direct analogue in versions of PHP prior to 4.1.0. See also
import_request_variables(). Nota: When running on the command line , this will not include the argv
and argc entries; these are present in the $_SERVER array.
$_SESSION
Variables which are currently registered to a script's session. Analogous to the old
$HTTP_SESSION_VARS array (which is still available, but deprecated). See the Session handling
functions section for more information.
Operatori
Precedenza degli operatori
La seguente tabella fornisce una lista della precedenza degli operatori con gli operatori a più bassa precedenza listati
prima.
Associatività Operatori
sinistra
,
sinistra
or
sinistra
xor
sinistra
and
destra
print
sinistra
= += -= *= /= .= %= &= |= ^= ~= <<= >>=
sinistra
?:
sinistra
||
sinistra
&&
sinistra
|
sinistra
^
sinistra
&
non associativi == != === !==
non associativi < <= > >=
sinistra
<< >>
sinistra
+-.
sinistra
*/%
destra
! ~ ++ -- (int) (float) (string) (array) (object) @
destra
[
non associativi new
9
PHP
Operatori aritmetici
Esempio
$a + $b
$a - $b
$a * $b
$a / $b
$a % $b
Nome
Addizione
Sottrazione
Moltiplicazione
Divisione
Modulo
Risultato
La somma di $a e $b.
La differenza di $a e $b.
il prodotto di $a e $b.
Quoziente di $a e $b.
Il resto di $a diviso da $b.
L'operatore di divisione ("/") restituisce un valore float in ogni caso, anche se i due operandi sono interi (oppure
stringhe che vengono convertite in interi).
Operatori bitwise
Esempio
$a & $b
$a | $b
$a ^ $b
~ $a
$a << $b
$a >> $b
Nome
And
Or
Xor
Not
Shift left
Shift right
Risultato
Sono impostati ad ON i bit che sono ON sia in $a che in $b.
Sono impostati ad ON i bit che sono ON in $a oppure in $b.
Sono impostati ad ON i bit che sono ON in $a oppure in $b na non quelli che sono entrambi ON.
Sono impostati ad ON i bit che sono OFF in $a, e viceversa.
Sposta i bit di $a a sinistra di $b passi (ogni passo significa "moltiplica per due")
Sposta i bit di $a a destra di $b passi (ogni passo significa "dividi per due")
Operatori di confronto
Esempio
$a == $b
$a === $b
$a != $b
$a <> $b
$a !== $b
$a < $b
$a > $b
$a <= $b
$a >= $b
Nome
Uguale
Identico
Diversi
Diversi
Non identici
Minore
Maggiore
Minore o uguale
Maggiore o uguale
Risultato
TRUE se $a
TRUE se $a
TRUE se $a
TRUE se $a
TRUE se $a
TRUE se $a
TRUE se $a
TRUE se $a
TRUE se $a
è
è
è
è
è
è
è
è
è
uguale a $b.
uguale a $b, ed essi sono dello stesso tipo. (Solo PHP 4)
diverso da $b.
diverso da $b.
diverso da $b, o se essi non sono dello stesso tipo.
strettamente minore di $b.
strettamente maggiore di $b.
minore o uguale a $b.
maggiore o uguale a $b.
Un altro operatore condizionale è l'operatore "?:" (o trinario), che opera come in C e molti altri linguaggi.
Questa espressione vale espressione2 se espressione1 è TRUE, e espressione3 se espressione1 è FALSE.
Operatori di controllo errori
PHP supporta un operatore di controllo dell'errore: il carattere at (@). Quando prefisso ad una espressione in PHP,
qualunque messaggio di errore che potesse essere generato da quella espressione sarà ignorato.
Se la caratteristica track_errors è abilitata, qualsiasi messaggio di errore generato dall'espressione sarà salvato nella
variabile globale $php_errormsg. Questa variabile sarà sovrascritta ad ogni errore, così controllatela subito se volete
usarla.
Nota: L'operatore @ funziona solo sulle espressioni. Una semplice regola di thumb è: se potete prendere il valore di
qualcosa, potete anteporre ad esso l'operatore @. Per esempio, potete anteporre esso a variabili, funzioni e chiamate
ad include(), costanti, e così via. non potete anteporre esso a definizioni di funzioni o classi, o strutture condizionali
come if e foreach, e così via.
Attenzione: attualmente il prefisso operatore di controllo dell'errore "@" disabiliterà la restituzione di errori per errori
critici che interromperanno l'esecuzione dello script. Tra le altre cose, questo significa che se state usando "@" per
sopprimere errori da una certa funzione ed essa non è disponibile oppure è stata scritta male, lo script terminerà senza
dare indicazioni sul perché.
Operatori di esecuzione
PHP supporta un operatore di esecuzione: backticks (``). Notare che quelli non sono apostrofi! PHP cercherà di
eseguire il contenuto dei backticks come comando di shell; sarà restituito l'output (i.e., non sarà semplicemente
esportato come output; può essere assegnato ad una variabile).
Nota: L'operatore backtick è disabilitato quando è abilitata safe mode oppure quando è disabilitata shell_exec().
Operatori di incremento/decremento
Esempio
++$a
$a++
--$a
$a--
Nome
Pre-incremento
Post-incremento
Pre-decremento
Post-decremento
Effetto
Incrementa $a di una unità, inoltre restituisce $a.
Restituisce $a, inoltre incrementa $a di una unità.
Decrementa $a di una unità, inoltre restituisce $a.
Restituisce $a, inoltre decrementa $a di una unità.
10
PHP
Operatori logici
Esempio
$a and $b
$a or $b
$a xor $b
! $a
$a && $b
$a || $b
Nome
And
Or
Xor
Not
And
Or
Risultato
TRUE se entrambi $a e $b sono TRUE.
TRUE se uno tra $a o $b è TRUE.
TRUE se uno tra $a o $b è TRUE, ma non entrambi.
TRUE se $a non è TRUE.
TRUE se entrambi $a e $b sono TRUE.
TRUE se uno tra $a o $b è TRUE.
La ragione per le due differenti variazioni degli operatori "and" e "or" è che essi operano con differenti precedenze.
Operatori di stringa
Ci sono due operatori di stringa. Il primo è l'operatore di concatenazione ('.'), che restituisce la concatenazione dei
suoi argomenti a destra e a sinistra. Il secondo è l'operatore di assegnazione concatenata ('.='), che aggiunge alla
fine dell'argomento sul lato destro l'argomento sul lato sinistro.
Strutture di controllo
if
Il costrutto if permette l'esecuzione condizionata di frammenti di codice. La struttura di controllo if di PHP è simile a
quella del linguaggio C:
if (espressione)
istruzione
Espressione restituirà il suo valore booleano. Se espressione vale TRUE, PHP eseguirà istruzione, e se essa vale FALSE
la ignorerà.
Spesso sarà necessario eseguire più di una istruzione condizionale. Naturalmente non è necessario, utilizzare una
singola clausola if per ciascuna istruzione. Si possono raggruppare diverse istruzioni in un singolo gruppo di istruzioni.
Per esempio, il codice che segue visualizzerà a è maggiore di b se $a è maggiore di $b, e successivamente assegnerà il
valore della variabile $a alla variabile $b:
Si possono annidare indefinitamente istruzioni if, la qual cosa fornisce piena flessibilità per l'esecuzione di istruzioni
condizionali in diversi punti del programma.
else
Spesso è necessario eseguire un'istruzione se una proposizione è vera e un'altra istruzione se la proposizione è falsa.
Per questo si usa la clausola else.
else estende il costrutto if aggiungendo la possibilità di eseguire un'istruzione se l'espressione nel ramo if è FALSE.
Il ramo else viene eseguito solo se l'espressione nel ramo if è FALSE, e, nel caso ci fossero delle clausole elseif,
solamente se le espressioni in esse contenute fossero anch'esse FALSE (vedere elseif).
elseif (oppure else if)
elseif, come è facile intuire, è una combinazione di if ed else. Analogamente ad else, estende if aggiungendo la
possibilità di eseguire un'altra istruzione nel caso in cui l'espressione contenuta nel ramo if sia FALSE. Però, a
differenza di else, si eseguirà l'istruzione alternativa solamente se l'espressione contenuta nel ramo elseif sarà TRUE.
Nel medesimo blocco if possono essere presenti più di una clausola elseif. Verrà eseguita l'istruzione del primo ramo
elseif la cui espressione sia TRUE.
L'istruzione di un ramo elseif verrà eseguita solo se l'espressione del ramo if e le espressioni dei rami elseif precedenti
sono FALSE, e se l'espressione del ramo elseif è TRUE.
Sintassi alternativa per le strutture di controllo
PHP offre una sintassi alternativa per alcune delle sue strutture di controllo; vale a dire, if, while, for, foreach e switch.
Fondamentalmente la sintassi alternativa consiste nel sostituire la prima parentesi graffa con il carattere "duepunti" (:)
e la seconda parentesi graffa con
endif;, endwhile;, endfor;, endforeach;, oppure endswitch;, rispettivamente.
La sintassi alternativa si applica anche ad else ed elseif.
11
PHP
while
Il ciclo while è la forma di ciclo più semplice tra quelle possibili in PHP. Si comporta come la sua controparte nel
linguaggio C. La forma di base di un ciclo while è la seguente:
while (espressione) istruzione
Il significato di un ciclo while è semplice. Istruisce l'interprete PHP perchè esegua l'istruzione (o le istruzioni) in esso
racchiuse, ripetutamente, fintanto che l'espressione contenuta nella clausola while ha valore TRUE. Il valore
dell'espressione viene verificato ogni volta che il ciclo si ripete (iterazione), così che anche se il valore dell'espressione
cambia durante l'esecuzione dell'istruzione, il ciclo non termina fino all'iterazione successiva. Ovviamente, se
l'espressione nella clausola while ha valore FALSE dall'inizio, l'istruzione racchiusa nel blocco non verrà eseguita
nemmeno una volta. Come nel caso della struttura di controllo if, si possono raggruppare più istruzioni nello medesimo
ciclo while racchiudendo le istruzioni in parentesi graffa, oppure utilizzando la sintassi alternativa:
while (espressione): istruzione ... endwhile;
do..while
Il ciclo do..while è simile al ciclo while, con l'unica differenza che il valore dell'espressione viene controllato alla fine di
ogni iterazione anzichè all'inizio. La differenza più importante rispetto a while è che la prima iterazione di un blocco
do..while verrà sempre eseguita (il valore dell'espressione viene controllato alla fine del ciclo), mentre non sarà
necessariamente eseguito in un ciclo while (il valore dell'espressione viene controllato all'inizio del ciclo, e se tale
valore è FALSE dall'inizio, l'esecuzione del ciclo termina immediatamente).
È ammessa una sola sintassi per il ciclo do..while.
for
Il ciclo for è il ciclo più complesso tra quelli disponibili in PHP. Si comporta come la sua controparte nel linguaggio C. La
sintassi di un clico for è:
for (espressione1; espressione2; espressione3) istruzione
Il valore della prima espressione (espressione1) viene verificato (eseguito) una sola volta incondizionatamente all'inizio
del ciclo.
Ad ogni iterazione, si controlla il valore di espressione2. Se è TRUE, il ciclo prosegue e viene eseguita l'istruzione (o le
istruzioni) contenuta nel blocco; se è FALSE, l'esecuzione del ciclo termina.
Al termine di ogni iterazione, si verifica (si esegue) il valore di espressione3.
Le due espressioni possono anche non essere presenti. Se non esiste espressione2 significa che il ciclo deve essere
eseguito indefinitamente (PHP considera implicitamente che il suo valore è TRUE, come in C). Questa possibilità in
fondo non è utile come può sembrare perchè obbliga a terminare il ciclo utilizzando l'istruzione break invece di
utilizzare le espressioni booleane del ciclo for .
PHP offre una sintassi alternativa (con i "punto e virgola") per i cicli for.
for (espressione1; espressione2; espressione3): istruzione; ...; endfor;
foreach
PHP 4 (non PHP 3) permette l'uso della struttura di controllo foreach, alla stessa maniera del linguaggio Perl e altri. Ciò
semplicemente fornisce una facile metodo per attraversare un array. Esistono due possibili notazioni sintattiche; la
seconda è un'utile estensione della prima:
foreach(array_expression as $value) istruzione
foreach(array_expression as $key => $value) istruzione
La prima attraversa l'array dato da array_expression. Ad ogni ciclo, si assegna il valore dell'elemento corrente a $value
e il puntatore interno avanza di una posizione (in modo tale che al ciclo successivo l'elemento corrente sarà il
successivo elemento dell'array).
La seconda esegue lo stesso ciclo con la differenza che il valore dell'indice corrente viene assegnato ad ogni ciclo, alla
variabile $key.
Nota: All'inizio dell'esecuzione di un ciclo foreach il puntatore interno viene automaticamente posizionato nella prima
posizione. Questo significa che non è necessario utilizzare la funzione reset() prima di un ciclo foreach.
Nota: È importante notare che foreach opera su una copia dell'array, non sull'array stesso, pertanto il puntatore
dell'array originale non viene modificato come accade utilizzando la funzione each() e le modifiche agli elementi
dell'array non appaiono nell'array originale.
Nota: foreach non offre la possibilità di annullare la generazione di messaggi d'errore utilizzando il carattere '@'.
break
break termina l'esecuzione di una struttura for, foreach while, do..while o switch.
break accetta un argomento opzionale che definisce, nel caso di cicli annidati, il livello del ciclo che è da interrompere.
12
PHP
continue
continue si utilizza per interrompere l'esecuzione del ciclo corrente e continuare con l'esecuzione all'inizio del ciclo
successivo.
continue accetta un argomento numerico opzionale che definisce, nel caso di cicli annidati, il numero di cicli da
interrompere e da cui iniziare l'esecuzione dell'iterazione successiva.
switch
switch è simile a una serie di if sulla stessa espressione. In molti casi può essere necessario confrontare una variabile
(o espressione) con differenti valori ed eseguire un differente blocco di istruzioni a seconda del valore di detta
variabile. Questo è esattamente quello che fa la struttura di controllo switch. La sintassi è uguale a quella del C.
È importante comprendere esattamente come viene eseguita la clausola switch per evitare errori. Un'istruzione switch
esegue linea dopo linea le istruzioni in essa contenuta. All'inizio non viene eseguito alcun codice. Solamente quando
incontra una clausola case il cui valore è uguale al valore della viariabile, PHP inizia ad eseguire le istruzioni contenute
nel blocco case. PHP continua l'esecuzione delle istruzioni fino alla termine del blocco switch, o quando incontra
un'istruzione break. Se non esiste alcuna istruzione break al termine di un blocco case PHP continuerà l'esecuzione
delle istruzioni del blocco case successivo.
In un'istruzione switch, la condizione in parentesi viene valutata una sola volta e il risultato viene confrontato con
ciascun ramo case. Utilizzando elseif, la condizione viene valutata una seconda volta. Se tale condizione è più
complessa di un semplice confronto e/o è in un ciclo piuttosto pesante, l'uso di switch dovrebbe garantire un minor
tempo di esecuzione.
Un blocco case può anche non contenere istruzioni, nel qual caso il controllo passa semplicemente al successivo blocco
case.
Un blocco case speciale è il il blocco case di default. Uguaglia tutte le condizioni non uguagliate nei blocchi case
precedenti e dev'essere l'ultimo blocco case. Per esempio:
L'espressione in un ramo case può essere qualsiasi espressione il cui valore sarà di tipo intero, decimale, numerico e
stringa. Array e oggetti (objects) non sono ammessi a meno che non siano dereferenziati a un tipo di dato semplice tra
quelli precedentemente elencati.
Come per altre strutture di controllo è possibile utilizzare una sintassi alternativa.
return
Se viene chiamato all'interno di una funzione, l'istruzione return() termina immediatamente l'esecuzione della funzione
corrente, e restituisce il suo argomento come valore della funzione chiamata. return() terminerà anche l'esecuzione di
un'istruzione eval() o di un file di script.
Se viene chiamato in uno scope globale, allora verrà terrminata l'esecuzione del file di script corrente. Nel caso in cui il
file di script corrente sia un file chiamato da include() o require(), il controllo viene passato al file chiamante.
Ciononostante, se il file di script corrente è un file chiamato da include(), allora il valore dato da return() verrà
restituito come valore della chiamata include(). Se viene chiamato return() all'interno del file di script principale, allora
l'esecuzione dello script terminerà. Se il file di script corrente è stato nominato da auto_prepend_file o
auto_append_file con le opzioni di configurazione nel file di configurazione, allora l'esecuzione di quello script termina.
Nota: Notate che poichè return() è un costrutto di linguaggio e non una funzione, le parentesi che circondano i suoi
argomenti non sono richieste --infatti, è più comune evitarle che usarle, nonostante ciò non c'è motivo di preferire un
modo o l'altro.
require()
L'istruzione require() include e valuta il file specifico.
require() include e valuta uno specifico file. Informazioni dettagliate su come funziona quest'inclusione sono descritte
nella documentazione di include().
require() e include() sono identiche in ogni senso eccetto per come esse trattano gli errori. include() produce un
Warning mentre require() restituisce un Fatal Error. In altre parole, non esitate ad usare require() se volete che un file
mancante fermi l'esecuzione della pagina. include() non si comporta in questo modo, lo script continuerà nonostante
tutto. Assicuratevi di avere un appropriato include_path impostato a dovere.
Nota: Prima di PHP 4.0.2, si applica la seguente logica: require() tenterà sempre di leggere il file chiamato, anche se la
riga su cui si trova non verrà mai eseguita. L'istruzione condizionale non avrà effetto su require(). Comunque, se la
riga su cui si verifica require() non viene eseguita, non sarà eseguito nemmeno il codice del file incluso. Similmente, le
strutture cicliche non avranno effetto sul comportamento di require(). Sebbene il codice contenuto nel file incluso è
ancora soggetto a ciclo, require() stesso si verifica solo una volta.
include()
L'istruzione include() include e valuta il file specificato.
La documentazione seguente si applica anche a require(). I due costrutti sono identici in ogni aspetto eccetto per come
essi trattano gli errori. include() produce un Warning mentre require() restituisce un Fatal Error. In altre parole, usate
13
PHP
require() se volete che un file mancante fermi l'esecuzione della pagina. include() non si comporta in questo modo, lo
script continuerà nonostante tutto. Assicuratevi di avere un appropriato include_path impostato a dovere.
Quando un file viene incluso, il codice che esso contiene eredita lo scope delle variabili della riga in cui si verifica
l'inclusione. Qualsiasi variabile disponibile in quella riga nella chiamata al file sarà disponibile all'interno del file
chiamato, da quel punto in avanti.
Se l'inclusione si verifica dentro una funzione all'interno del file chiamato, allora tutto il codice contenuto nel file
chiamato si comporterà come se esso sia stato definito all'interno di una funzione. Così, esso seguirà lo scope delle
variabili di quella funzione.
Quando un file viene incluso, il parsing esce dalla modalità PHP e entra in modalità HTML all'inizio del file incluso, e
riprende alla fine. Per questa ragione, qualunque codice all'interno del file incluso che dovrebbe essere eseguito come
codice PHP deve essere incluso all'interno dei tag PHP validi di apertura e chiusura.
Se "URL fopen wrappers" nel PHP sono abilitati (come nella configurazione di default), potete specificare il file da
includere usando un URL (via HTTP) invece che un percorso locale. Se il server chiamato interpreta il file incluso come
codice PHP, le variabili possono essere passate al file incluso usando una stringa di richiesta URL come con l'utilizzo di
HTTP GET. Non è proprio parlare della stessa cosa includere il file e averlo ereditato dallo scope di variabili del file
chiamante; lo script è stato attualmente eseguito su un server remoto e il risultato è poi stato incluso nello script
locale.
Poichè include() e require() sono speciali costrutti di linguaggio, dovete includerli all'interno di blocchi di istruzioni se si
trovano in un blocco condizionale.
require_once()
L'istruzione require_once() include e valuta il file specificato durante l'esecuzione dello script. È un comportamento
simile all'istruzione require(), con la sola differenza che se il codice di un file è stato già incluso, esso non sarà incluso
nuovamente. Vedere la documentazione di require() per maggiori informazioni su come funziona quest'istruzione.
require_once() dovrebbe essere usato nei casi dove lo stesso file potrebbe essere incluso e valutato più di una volta
durante una particolare esecuzione di uno script, e volete essere sicuri che esso sia incluso esattamente una volta per
evitare problemi con la ridefinizione di funzioni, riassegnazione di valori a variabili, etc.
include_once()
L'istruzione include_once() include e valuta il file specificato durante l'esecuzione dello script. È un comportamento
simile all'istruzione include(), con la sola differenza che se il codice di un file è stato già incluso, esso non sarà incluso
nuovamente. Come suggerisce il nome, esso sarà incluso solo una volta.
include_once() dovrebbe essere usato nei casi dove lo stesso file potrebbe essere incluso e valutato più di una volta
durante una particolare esecuzione di uno script, e volete essere sicuri che esso sia incluso esattamente una volta per
evitare problemi con la ridefinizione di funzioni, riassegnazione di valori a variabili, etc.
Funzioni
Funzioni definite dall’utente
Una funzione può essere definita usando la seguente sintassi:
function foo ($arg_1, $arg_2, ..., $arg_n)
{
echo "Funzione di esempio.\n";
return $retval;
}
All'interno di una funzione può apparire qualunque codice PHP valido, persino altre funzioni e definizioni di classe.
In PHP 3, le funzioni devono essere definite prima di essere referenziate. Non esiste nessun requisito in PHP 4.
PHP non supporta l'overloading di funzioni, non è possibile indefinire o ridefinire funzioni precedentemente dichiarate.
PHP 3 non supporta un numero variabile di argomenti per le funzioni, sebbene siano supportati gli argomenti di
default. PHP 4 li supporta entrambi.
Argomenti delle funzioni
L'informazione può essere passata alle funzioni tramite la lista degli argomenti, che sono liste di variabili e/o costanti
delimitati dalla virgola.
PHP supporta il passaggio di argomenti per valore (comportamento di default), il passaggio per riferimento, e i valori
di default degli argomenti. Le liste di argomenti di lunghezza varabile sono supportate solo in PHP 4 e successivi.
14
PHP
Costruire argomenti passati per riferimento
Di default, gli argomenti della funzione sono passati per valore (così se cambiate il valore dell'argomento all'interno
della funzione , esso non cambierà fuori della funzione). Se volete permettere ad una funzione di modificare i suoi
argomenti, dovete passarli per riferimento.
Se volete che una argomento sia passato sempre per riferimento ad una funzione, dovete anteporre un ampersand (&)
al nome dell'argomento nella definizione della funzione.
Liste di argomenti a lunghezza variabile
PHP 4 ha il supporto per le liste di argomenti a lunghezza variabile nelle funzioni definite dall'utente. Ciò è realmente
abbastanza semplice, usando le funzioni func_num_args(), func_get_arg(), e func_get_args().
Non è richiesta una speciale sintassi, e le liste di argomenti possono ancora essere provviste esplicitamente con le
definizioni di funzioni e si comporteranno normalmente.
Valori restituiti
I valori vengono restituiti usando l'istruzione opzionale return. Può essere restituito qualsiasi tipo, incluse liste ed
oggetti. Ciò provoca l'interruzione dell'esecuzione della funzione immediatamente e la restituzione del controllo alla
linea da cui è stata chiamata.
Non possono essere restituiti valori multipli da una funzione, ma risultati simili possono essere ottenuti restituendo una
lista.
Per restituire un riferimento da una funzione, è necessario usare l'operatore di passaggio per riferimento & in
entrambe le dichiarazioni di funzioni e quando viene assegnato il valore restituito ad una variabile:
Funzioni di Mail
La funzione mail() permette di inviare messaggi di posta elettronica.
mail
Invio mail
bool mail ( string a, string oggetto, string messaggio [, string
header_addizionali [, string parametri_addizionali]])
mail() invia automaticamente il messaggio specificato in messaggio al destinatario specificato in a. Destinatari multipli
possono essere specificati mettendo una virgola tra ogni indirizzo in a. Email con allegati e tipi speciali di contenuto
possono essere spedite usando questa funzione. Questo è possibile tramite la codifica MIME.
mail() restituisce TRUE se la mail è stata accettata per la spedizione con successo, altrimenti restituisce FALSE.
Attenzione: L'implementazione Windows della funzione mail() differisce sotto molti aspetti dall'implementazione Unix.
Primo, non usa una un programma in locale per comporre i messaggi, ma opera soltanto direttamente sui socket, il
che significa che deve essere presente in ascolto un MTA su un socket di rete (che può essere su localhost o su una
macchina remota). Secondo, gli header custom quali From:, Cc:, Bcc: e Date: non vengono interpretati subito dal
MTA, ma ne viene fatto prima il parsing da parte di PHP. PHP < 4.3 supportava solo gli header Cc: (ed era casesensitive). PHP >= 4.3 supporta tutti gli header e non è più case-sensitive.
Se viene passata come parametro una quarta stringa, questa stringa viene inserita alla fine dell'intestazione (header).
Ciò viene tipicamente usato per aggiungere intestazioni supplementari. Intestazioni multiple supplementari sono
separate da un carattere di "a capo" (sia newline che carriage return).
Nota: È necessario usare \r\n per separare le intestazioni, alcuni mail transfer agent sotto Unix potrebbero funzionare
anche solo con un singolo newline (\n).
Con il parametro parametri_addizionali è possibile impostare un parametro addizionale a linea di comando per il
programma configurato per inviare mail usando sendmail_path. Per esempio si può impostare il corretto valore per
envelope sender di sendmail. Potrebbe essere necessario aggiungere l'utente che ha in esecuzione il server web alla
configurazione di sendmail per prevenire l'aggiunta dell'intestazione 'X-Warning' quando si imposta envelope sender in
questo modo.
È possibile costruire messaggi complessi utilizzando la tecnica di concatenazione delle stringhe.
Nota: Assicurarsi di non avere nessun carattere di newline nei parametri a o oggetto, o la mail non verrà spedita
correttamente.
Nota: Il parametro a non può essere un indirizzo nella forma "Qualcosa <[email protected]>". Il comando di
mail non sarebbe in grado di effettuare correttamente il parsing mentre dialoga con il MTA.
15
PHP
Funzioni Matematiche
abs
Valore assoluto
mixed abs ( mixed numero)
Restituisce il valore assoluto di un numero. Se l'argomento della funzione è di tipo float, il valore restituito è float,
altrimenti restituisce un integer (perché float di solito ha un range di valori più grande di integer).
acos
Arco coseno
float acos ( float arg)
Restituisce l'arco coseno di arg in radianti.
asin
Arco seno
float asin ( float arg)
Restituisce l'arco seno di arg in radianti.
atan
Arco tangente
float atan ( float arg)
Restituisce l'arco tangente di arg in radianti.
base_convert
Converte un numero fra basi arbitrarie
string base_convert ( string numero, int base_di_partenza, int base_di_arrivo)
Restituisce una stringa contenente numero rappresentata in base base_di_arrivo. La base in cui numero è dato è
specificata da base_di_partenza. Entrambe base_di_partenza e base_di_arrivo devono essere comprese fra 2 e 36,
inclusi. Cifre in numeri con una base maggiore di 10 saranno rappresentati con le lettere a-z, con a significante 10, b
significante 11 e z significante 35.
bindec
Da binario a decimale
int bindec ( string stringa_binaria)
Restituisce il decimale equivalente al numero binario rappresentato dall'argomento stringa_binaria.
bindec() converte un binario in integer. Il più grande numero che può essere convertito è 31 volte la cifra 1 oppure
2147483647 espresso in formato decimale.
ceil
Arroronda le frazioni all'intero superiore
float ceil ( float numero)
Restituisce il primo intero più grande di numero, se necessario. Il valore restituito da ceil() è ancora di tipo float,
poiché la gamma di valori del tipo float è solitamente più grande di quella del tipo int.
cos
Coseno
float cos ( float arg)
Restituisce il coseno di arg in radianti.
16
PHP
decbin
Da decimale a binario
string decbin ( int numero)
Restituisce una stringa contenente una rappresentazione binaria di un dato argomento numero. Il più grande numero
che può essere convertito è 4294967295 in decimale, risultante in una stringa composta da 32 volte la cifra 1.
dechex
Da decimale a esadecimale
string dechex ( int numero)
Restituisce una stringa contenente una rappresentazione esadecimale di un dato argomento numero. Il più grande
numero che puù essere convertito è 2147483647 in decimale risultante in "7fffffff".
decoct
Da decimale a ottale
string decoct ( int numero)
Restituisce una stringa contenente una rappresentazione in ottale di un dato argomento numero. Il più grande numero
che può essere convertito è 2147483647 in decimale risultante in "17777777777".
deg2rad
Converte il numero dato in gradi nell'equivalente espresso in radianti
double deg2rad ( double numero)
Questa funzione converte numero da gradi al valore equivalente espresso in radianti.
exp
e elevato alla potenza di ...
float exp ( float arg)
Restituisce e elevato alla potenza di arg.
floor
Arrotonda le frazioni all'intero inferiore
float floor ( float numero)
Restituisce il primo intero più piccolo di numero, se necessario. Il valore restituito da floor() è ancora di tipo float,
poiché la gamma di valori del tipo float è solitamente più grande di quella del tipo int.
fmod
Returns the floating point remainder (modulo) of the division of the arguments
float fmod ( float x, float y)
Returns the floating point remainder of dividing the dividend (x) by the divisor (y). The reminder (r) is defined as: x =
i * y + r, for some integer i. If y is non-zero, r has the same sign as x and a magnitude less than the magnitude of y.
getrandmax
Mostra il più grande numero casuale disponibile
int getrandmax ( void)
Restituisce il valore massimo che può essere restituito da una chiamata alla funzione rand().
17
PHP
hexdec
Da esadecimale a decimale
int hexdec ( string stringa_esadecimale)
Restituisce l'equivalente decimale di un numero esadecimale rappresentato dall'argomento stringa_esadecimale.
hexdec() converte una stringa esadecimale in un numero decimale. Il più grande numero che può essere convertito è
7fffffff o 2147483647 espresso in decimale.
hexdec() sostituisce ogni carattere non esadecimale che incontra con 0. In questo modo, tutti gli zeri a sinistra sono
ignorati, ma gli zeri a destra sono valutati.
is_finite
bool is_finite ( float val)
Restituisce TRUE se val è un numero finito valido all'interno del range dei float, come definito da PHP su questa
piattaforma.
is_infinite
bool is_infinite ( float val)
Restituisce TRUE se val è infinito (positivo o negativo), come il risultato di log(0) o ogni altro valore troppo grande per
essere contenuto nel range dei float di una determinata piattaforma.
is_nan
bool is_nan ( float val)
Restituisce TRUE se val 'non è un numero', come il risultato di acos(1.01).
lcg_value
Generatore combinato lineare congruenziale
float lcg_value ( void)
lcg_value() restituisce uno pseudo numero casuale nell'intervallo (0, 1). La funzione combina due GC con periodo di
2^31 - 85 e 2^31 - 249. Il periodo di questa funzione è uguale al prodotto dei due primi.
log10
Logaritmo base-10
float log10 ( float arg)
Restituisce il logaritmo in base-10 di arg.
log
float log ( float arg)
Restituisce il logaritmo naturale di arg.
max
Trova il valore massimo
mixed max ( mixed arg1, mixed arg2, mixed argn)
max() restituisce il numericamente più grande dei valori dati come parametro.
Se il primo parametro è un array, max() restituisce il massimo dei valori di tale array. Se il primo parametro è un
integer, string o double, si ha bisogno almeno di due parametri e max() restituisce il maggiore di tali valori. Si può
confrontare un numero illimitato di valori.
Se uno o più valori sono float, tutti i valori saranno considerati come float, e verrà restituito un float. Se nessuno dei
valori è double, tutti verranno considerati come integer, e verrà restituito un integer.
18
PHP
min
Trova il valore minimo
mixed min ( mixed arg1, mixed arg2, mixed argn)
number min ( array numeri)
min() restituisce il numericamente più piccolo dei valori dati come parametro.
Nella prima variante, si ha bisogno di almeno due parametri e min() restituisce il minimo fra i valori. Si può
confrontare un numero illimitato di valori.
Nella seconda variante, min() restituisce il più piccolo valore in numeri.
Se uno o più valori sono float, tutti i valori saranno considerati come float, e verrà restituito un float. Se nessuno dei
valori è float, tutti verranno considerati come integer, e verrà restituito un integer.
octdec
Da ottale a decimale
int octdec ( string stringa_ottale)
Restituisce l'equivalente decimale del numero ottale rappresentato dall'argomento stringa_ottale. OctDec converte una
stringa ottale in un numero decimale. Il più grande numero che può essere convertito è 17777777777 o 2147483647
in decimale.
pi
Restituisce il valore di pi
double pi ( void)
Restituisce una appossimazione di pi. Il valore restituito è un float e ha precisione secondo la direttiva precision del file
php.ini, che ha come valore predefinito 14. Inoltre, si può usare la costante M_PI che permette di ottenere risultati
identici all'uso di pi().
pow
Espressione esponenziale
float pow ( float base, float esp)
Restituisce base elevato alla potenza di esp. Se possibile, questa funzione restituisce un integer. Se la potenza non
può essere computata, viene generato un errore, e pow() restituirà FALSE.
rad2deg
Converte un numero in radianti nell'equivalente numero in gradi
double rad2deg ( double numero)
Questa funzione converte numero da radianti a gradi.
rand
Genera un valore casuale
int rand ( [int min, int max])
Se chiamata senza i parametri opzionali min, max, rand() restituisce un valore pseudo casuale compreso fra 0 e
RAND_MAX. Se ad esempio si desidera un numero casuale compreso fra 5 e 15 (inclusi) usare rand (5, 15).
Ricordarsi di inizializzare il generatore di numeri casuali usando srand().
Nota: Nelle versioni precedenti la 3.0.7 il significato di max era range. Per ottenere lo stesso risultato in queste
vecchie versioni un breve esempio dovrebbe essere il seguente: rand (5, 11), si otterrà un numero casuale compreso
fra 5 e 15.
round
Arrotonda un numero non intero
double round ( double val [, int precisione])
Restituisce il valore arrotondato di val con la precisione specificata (numero di cifre dopo il punto decimale). precision
può anche essere negativa o zero (predefinito).
19
PHP
sin
Seno
float sin ( float arg)
Restituisce il seno di arg in radianti.
sqrt
Radice quadrata
float sqrt ( float arg)
Restituisce la radice quadrata di arg.
srand
Inizializza il generatore di numeri casuali
void srand ( int seme)
Inizializza il generatore di num casuali con seme.
tan
Tangente
float tan ( float arg)
Restituisce la tangente di arg in radianti.
Funzioni InterBase
ibase_blob_add
Aggiunge dati in un blob creato
int ibase_blob_add ( int blob_id, string data)
ibase_blob_cancel
Cancella la creazione di un blob
int ibase_blob_cancel ( int blob_id)
ibase_blob_close
Chiude un blob
int ibase_blob_close ( int blob_id)
ibase_blob_create
Crea un blob per aggiungerci dei dati
int ibase_blob_create ( [int link_identifier])
ibase_blob_echo
Visualizza il contenuto di un blob sul browser
int ibase_blob_echo ( string blob_id_str)
20
PHP
ibase_blob_get
Ottiene len byte di dati dal blob aperto
string ibase_blob_get ( int blob_id, int len)
ibase_blob_import
Create un blob, copy il file al suo interno e lo chiude
string ibase_blob_import ( [int link_identifier, int file_id])
ibase_blob_info
Restituisce la lunghezza del blob e altre informazioni utlili
object ibase_blob_info ( string blob_id_str)
ibase_blob_open
Apre un blob per ricavare parte di dati
int ibase_blob_open ( string blob_id)
ibase_close
Chiude una connessione ad un database InterBase
int ibase_close ( [int connection_id])
Chiude il collegamento ad un database InterBase che è stato associato con un id di connessione restituito da
ibase_connect(). Se l'id di connessione viene omesso, viene considerato l'ultimo collegamento che è stato aperto. La
transazione predefinita sul collegamento viene "committed", le altre transazioni vengono "rolled back".
ibase_commit
Esegue il commit di una transazione
int ibase_commit ( [int link_identifier, int trans_number])
Esegue il commit della transazione trans_number che è stata creata con ibase_trans().
ibase_connect
Apre una connessione con un database InterBase
int ibase_connect ( string database [, string username [, string password [,
string charset [, int buffers [, int dialect [, string role]]]]]])
Stabilisce una connessione con un server InterBase. Il parametro database deve essere un percorso valido di un file di
database sul server dove risiede. Se il server non fosse locale, bisogna aggiungere prima del percorso o 'hostname:'
(TCP/IP), o '//hostname/' (NetBEUI) o 'hostname@' (IPX/SPX), in base al protocollo di connessione utilizzato.
username e password possono venire specificati anche con le direttive di configurazione del PHP ibase.default_user e
ibase.default_password. charset è il set di caratteri predefinito per un database. buffers è il numero di buffer di
database da allocare per la cache dal lato server. Se è 0 o viene omesso, il server usa il suo valore predefinito. dialect
seleziona il dialetto SQL predefinito per ogni operazione eseguita all'interno di una connessione, e il suo valore
predefinito è il più alto supportato dalle librerie del client. Nel caso di una seconda chiamata fatta con ibase_connect()
con gli stessi parametri, non verrà creato alcun nuovo collegamento, bensì, l'identificatore del collegamento già aperto
verrà restituito. Il collegamento al server verrà chiuso appena termina l'esecuzione dello script, a meno che non venga
chiuso prima esplicitamente chiamando ibase_close().
ibase_errmsg
Restituisce messaggi di errore
string ibase_errmsg ( void)
Restituisce una stringa contenente un messaggio di errore.
21
PHP
ibase_execute
Esegue una query preparata in precedenza
int ibase_execute ( int query [, int bind_args])
Esegue una query preparata da ibase_prepare(). Ciò è molto più efficace che usare ibase_query() se state ripetendo
uno stesso tipo di query molte volte cambiando solo alcuni parametri.
ibase_fetch_object
Ottiene un oggetto da un database InterBase
object ibase_fetch_object ( int result_id)
Elabora una riga come un pseudo-oggetto da un result_id ottenuto o da ibase_query() o da ibase_execute().
Chiamate successive a ibase_fetch_object() restituiscono la successiva riga dai risultati della query o FALSE se non vi
sono ulteriori righe.
ibase_fetch_row
Elabora una riga da un database InterBase
array ibase_fetch_row ( int result_identifier)
Restituisce un array che corrisponde alla riga ottenuta o FALSE se non ci sono righe rimanenti.
ibase_fetch_row() prende una riga di dati dai risultati associati allo specificato result_identifier. La riga viene restituita
come un array. Ogni colonna risultante viene immagazzinata in un offset dell'array, l'offset inizia da 0.
Chiamate successive a ibase_fetch_row() restituiscono la successiva riga dai risultati della query o FALSE se non vi
sono ulteriori righe.
ibase_field_info
Ottiene informazioni su un campo
array ibase_field_info ( int result, int field number)
Restituisce un array con informazioni relative a un campo dopo che una query select è stata eseguita. L'array ha la
forma name, alias, relation, length e type.
ibase_free_query
Libera la memoria allocata da una query preparata
int ibase_free_query ( int query)
Libera una query preparata da ibase_prepare().
ibase_free_result
Libera la memoria allocata da un result set
int ibase_free_result ( int result_identifier)
Libera un result set che è stato creato da ibase_query().
ibase_num_fields
Ottiene il numero di campi in un result set
int ibase_num_fields ( int result_id)
Restituisce un integer contenente il numero di campi in un result set.
ibase_pconnect
Crea una connessione persistente ad un database Interbase
int ibase_connect ( string database [, string username [, string password [,
string charset [, int buffers [, int dialect [, string role]]]]]])
ibase_pconnect() agisce in modo molto simile a ibase_connect() con due differenze principali. Innanzitutto, durante la
connessione, la funzione cercherà prima di trovare un collegamento (persistente) che è già stato aperto con gli stessi
parametri. Se viene trovato, il suo identificatore verrà restituito al posto di aprire una nuova connessione. In secondo
22
PHP
luogo, la connessione al server InterBase non verrà chiusa al termine dell'esecuzione dello script. Invece, il
collegamento resterà aperto per un uso futuro (ibase_close() non chiuderà i collegamenti stabiliti da
ibase_pconnect()). Questo tipo di collegamento è perciò chiamato 'persistente'.
ibase_prepare
Prepara una query per un successivo binding dei segnaposto dei parametri ed esecuzione
int ibase_prepare ( [int link_identifier, string query])
Prepara una query per un successivo binding dei segnaposto dei parametri ed esecuzione (tramite ibase_execute()).
ibase_query
Esegue una query su di un database InterBase
int ibase_query ( [int link_identifier, string query [, int bind_args]])
Esegue una query su di un database InterBase. Se la query non ha successo, restituisce FALSE. Se ha successo e vi
sono righe di risultato (come si ha ad esempio con le query SELECT), restituisce un identificatore di risorsa. Se la
query ha avuto successo, ma non ci sono risultati, restituisce TRUE. Restutuisce FALSE se la query fallisce.
ibase_rollback
Esegue il roll back di una transazione
int ibase_rollback ( [int link_identifier, int trans_number])
ibase_timefmt
Imposta il formato delle colonne timestamp, date e time restituite dalle query
int ibase_timefmt ( string format [, int columntype])
Imposta il formato delle colonne di tipo timestamp, date o time restituite dalle query.
ibase_trans
Inizia una transazione
int ibase_trans ( [int trans_args [, int link_identifier]])
Funzioni MySQL
mysql_affected_rows
Ottiene il numero di righe coinvolte nelle precedenti operazioni MySQL
int mysql_affected_rows ( [resource identificativo_connessione])
mysql_affected_rows() restituisce il numero di righe coinvolte nell'ultima query INSERT, UPDATE o DELETE associata a
identificativo_connessione. Se l'identificativo di connessione non è specificato, viene considerata l'ultima connessione
aperta con mysql_connect().
Nota: Se sono usate le transazioni, è necessario richiamare mysql_affected_rows() dopo le query INSERT, UPDATE, o
DELETE e non dopo il commit.
Se l'ultima query era una query DELETE senza clausola WHERE, tuti i record saranno cancellati dalla tabella ma questa
funzione restituirà zero.
Nota: Usando UPDATE, MySQL non aggiornerà le colonne nelle quali il nuovo valore è uguale al vecchio valore. Questo
crea la possibilità che mysql_affected_rows() può non uguagliare realmente il numero di righe corrispondenti ma solo il
numero di righe effettivamente coinvolte dalla query.
mysql_affected_rows() non funziona con l'istruzione SELECT ma solo con le istruzioni che modificano i record. Per
ricavare il numero di righe restituite da SELECT, usare mysql_num_rows().
Se l'ultima query fallisce, questa funzione restituisce -1.
mysql_change_user
Cambia l'utente della connessione attiva
23
PHP
int mysql_change_user ( string nome_utente, string password [, string database
[, resource identificativo_connessione]])
mysql_change_user() cambia l'utente dell'attuale connessione attiva o della connessione specificata dal parametro
opzionale identificativo_connessione. Se un database is specificato, questo sarà il database corrente dopo che l'utente
è stato cambiato. Se l'autorizzazione del nuovo utente e password falllisce, l'attuale utente connesso rimane attivo.
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_client_encoding
Restituisce il nome del set di caratteri
int mysql_client_encoding ( [resource identificativo_connessione])
mysql_client_encoding() restituisce il nome del set di caratteri predefinito per l'attuale connessione.
mysql_close
Chiude una connessione MySQL
bool mysql_close ( [resource identificativo_connessione])
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_close() chiude la connessione al server MySQL associata all'identificativo di connessione specificato. Se
identificativo_connessione non è specificato, viene usata l'ultima connessione aperta.
L'uso di mysql_close() non è normalmente necessario, dal momento che le connessioni non persistenti sono chiuse
automaticamente alla fine dell'esecuzione dello script.
Nota: mysql_close() non chiude le connessioni persistenti create da mysql_pconnect().
mysql_connect
Apre una connessione ad un server MySQL
resource mysql_connect ( [string server [, string nome_utente [, string password
[, bool nuova_connessione [, int client_flags]]]]])
Restituisce un identificativo di connessione MySQL in caso di successo oppure FALSE in caso di fallimento.
mysql_connect() stabilice una connessione ad un server MySQL. I seguenti valore predefiniti sono assunti per i
parametri opzionali mancanti: server = 'localhost:3306', nome_utente = nome dell'utente proprietario del processo
server e password = password vuota.
Il parametro server può anche includere un numero di porta. Es. "hostname:porta" o un percorso ad un socket es.
":/percorso/al/socket" per il localhost.
Si può eliminare il messaggio di errore nel caso di fallimento aggiungendo il prefisso @ al un nome della funzione.
Se si fa una seconda chiamata a mysql_connect() con gli stessi argomenti, nessuna nuova connessione sarà stabilita,
ma sarà restituito l'identificativo della connessione già aperta. Il paramentro nuova_connessione modifica questo
comportamento e fa sì che mysql_connect() apra sempre una nuova connessione, anche se mysql_connect() era stata
chiamata prima con gli stessi parametri. il parametro client_flags può essere combinato con le costanti
MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE o MYSQL_CLIENT_INTERACTIVE.
La connessione al server sarà chiusa prima della fine dell'esecuzione dello script, a meno che questa non sia
precedentemente chiusa esplicitamente richiamando mysql_close().
mysql_create_db
Crea un database MySQL
bool mysql_create_db ( string nome_database [, resource
identificativo_connessione])
mysql_create_db() tenta di creare un nuovo database nel server associato all'identificativo di conmnessione
specificato.
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
Nota: La funzione mysql_create_db() è sconsigliata. Al suo posto è preferibile usare mysql_query() per inviare
un'istruzione SQL CREATE DATABASE.
mysql_data_seek
Muove il puntatore interno del risultato
bool mysql_data_seek ( resource identificativo_risultato, int numero_riga)
24
PHP
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_data_seek() muove il puntatore di riga interno del risultato MySQL associato all'identificativo specificato per
puntare ad un determinato numero di riga. La successiva chiamata a mysql_fetch_row() dovrebbe restituire questa
riga.
numero_riga inizia da 0. numero_riga dovrebbe essere un valore nell'intervallo che va da 0 a mysql_num_rows - 1.
Nota: La funzione mysql_data_seek() può essere usata solo insieme a mysql_query(), non con
mysql_unbuffered_query().
mysql_db_name
Ottiene dei dati dal risultato
string mysql_db_name ( resource risultato, int riga [, mixed campo])
mysql_db_name() accetta come primo paramentro il puntatore al risultato dalla chiamata a mysql_list_dbs(). Il
parametro riga è un indice compreso nell'intervallo del risultato.
Se intercorre un errore, viene restituito FALSE. Usare mysql_errno() e mysql_error() per determinare la natura
dell'errore.
mysql_drop_db
Elimina (cancella) un database MySQL
bool mysql_drop_db ( string nome_database [, resource
identificativo_connessione])
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_drop_db() tenta di eliminare (cancellare) un intero database dal server associato all'identificativo di
connessione specificato.
Nota: La funzione mysql_drop_db() è sconsigliata. Al suo posto è preferibile usare mysql_query() per inviare una
istruzione SQL DROP DATABASE.
mysql_errno
Restituisce il valore numerico del messaggio di errore della precedente operazione MySQL
int mysql_errno ( [resource identificativo_connessione])
Restituisce il numero di errore dall'ultima funzione MySQL, oppure 0 (zero) se nessun errore è intercorso.
Gli errori ritornano dal database MySQL senza visualizzare i messaggi di avvertimento. Usando invece mysql_errno() si
recupera il codice di errore. Notare che questa funzione restituisce solo il codice errore della più recente funzione
MySQL eseguita (ad esclusione di mysql_error() e mysql_errno()), quindi se la si vuole usare, assicurarsi di controllare
il valore prima di richiamare un'altra funzione MySQL.
Nota: Se l'argomento opzionale è specificato la connessione indicata viene usata per recuperare il codice d'errore.
Altrimenti viene usata l'ultima connessione aperta.
mysql_error
Restituisce il testo del messagio di errore della precedente operazione MySQL
string mysql_error ( [resource identificativo_connessione])
Restituisce il testo dell'errore dall'ultima funzione MySQL, oppure '' (la stringa vuota) se nessun errore intercorre.
Gli errori ritornano dal database MySQL senza visualizzare i messaggi di avvertimento. Si usa invece mysql_error() per
recuperare il testo dell'errore. Notare che questa funzione restituisce solo il testo dell'errore della più recente funzione
MySQL eseguita (ad esclusione di mysql_error() e mysql_errno()), quindi se la si vuole usare, assicurarsi di controllare
il valore prima di richiamare un'altra funzione MySQL.
Nota: Se l'argomento opzionale è specificato la connessione indicata viene usata per recuperare il codice d'erroe.
Altrimenti viene usata l'ultima connessione aperta.
mysql_escape_string
Aggiunge le sequenze di escape in una stringa per l'uso in mysql_query.
string mysql_escape_string ( string stringa_senza_escape)
Questa funzione aggiunge le sequenze di escape a stringa_senza_escape, in modo che sia sicuro usarla in
mysql_query().
Nota: mysql_escape_string() non aggiunge le sequenze di escape a % ed a _.
25
PHP
Questa funzione è identica a mysql_real_escape_string() eccetto che mysql_real_escape_string() accetta un
identificativo di connessione ed aggiunge le sequenze di escape alla stringa in base al set di caratteri corrente.
mysql_escape_string() non accetta come argomento un identificativo di connessione e non rispetta le impostazioni del
corrente set di caratteri.
mysql_fetch_array
Carica una riga del risultato come un array associativo, un array numerico o entrambe.
array mysql_fetch_array ( resource risultato [, int tipo_risultato])
Restituisce un array che corrisponde alla riga caricata o FALSE se non ci sono più righe.
mysql_fetch_array() è una versione estesa di mysql_fetch_row(). Oltre a memorizzare i dati del risultato in array con
indice numerico, questa li memorizza anche con indici associativi usando i nomi dei campi come chiavi.
Se due o più colonne del risultato hanno gli stessi nomi di campo, l'ultima colonna avrà la precedenza. Per accedere
alle altre colonne con lo stesso nome, si deve usare l'indice numerico della colonna o farne un alias. Per le colonnealias, non si può accedere al contenuto con il nome della colonna originale (in questo esempio si usa 'campo').
Una cosa importante da notare è che l'uso di mysql_fetch_array() non è significativamente più lento dell'uso di
mysql_fetch_row(); questo fornisce un significativo valore aggiunto.
Il secondo argomento opzionale tipo_risultato in mysql_fetch_array() è una costante e può assumere i seguenti valori:
MYSQL_ASSOC, MYSQL_NUM e MYSQL_BOTH. Questa caratteristica è stata aggiunta nel PHP 3.0.7. MYSQL_BOTH è il
valore predefinito per questo argomento.
Usando MYSQL_BOTH, si ottiene un array con entrambe gli indici (associativo e numerico). Usando MYSQL_ASSOC, si
ottengono solo gli indici associativi (stesso funzionamento di mysql_fetch_assoc()), usando MYSQL_NUM, si otengono
solo gli indici numerici (stesso funzionamento di mysql_fetch_row()).
mysql_fetch_assoc
Carica una riga del risultato come array associativo
array mysql_fetch_assoc ( resource risultato)
Restituisce un array associativo che corrisponde alla riga caricata o FALSE se non ci sono più righe.
mysql_fetch_assoc() è equivalente alla chiamata di mysql_fetch_array() con MYSQL_ASSOC come secondo parametro
opzionale. Questa restituisce solo un array associativo. Questo è il modo incui mysql_fetch_array() funzionava
originalmente. Se è necessario l'indice numerico al posto di quello associativo, usare mysql_fetch_array().
Se due o più colonne del risultato hanno gli stessi nomi di campo, l'ultima colonna avrà la precedenza. Per accedere
alle altre colonne con lo stesso nome, si deve accedere al risultato con l'indice numerico usando mysql_fetch_row()
oppure aggiunger degli alias.
Una cosa importante da notare è che l'uso di mysql_fetch_assoc() non è significativamente più lento dell'uso di
mysql_fetch_row(); questo fornisce un significativo valore aggiunto.
mysql_fetch_field
Ottiene informazioni sulla colonna da un risultato e le restituisce come oggetto
object mysql_fetch_field ( resource risultato [, int indice_campo])
Restituisce un oggetto contenente le informazioni di un campo.
mysql_fetch_field() può essere usata al fine di ottenere informazioni circa i campi di un determinato risultato di una
query. Se l'indice del campo non è specificato, il successivo campo non ancora recuperato da mysql_fetch_field() viene
considerato.
Le proprietà dell'oggetto sono: name - nome della colonna, table - nome della tabella a cui appartiene la colonna,
max_length - massima lunghezza della colonna, not_null - 1 se la colonna non può essere NULL, primary_key - 1 se la
colonna è una chiave primaria, unique_key - 1 se la colonna è una chiave unica, multiple_key - 1 se la colonna è una
chiave non-unica, numeric - 1 se la colonna è numerica, blob - 1 se la colonna è un BLOB, type - il tipo della colonna,
unsigned - 1 se la colonna è senza segno, zerofill - 1 se la colonna è completata da zeri
mysql_fetch_lengths
Ottiene la lunghezza di ogni output nel risultato
array mysql_fetch_lengths ( resource risultato)
Restituisce un array che corrisponde alle lunghezze di ogni campo nell'ultima riga caricata da mysql_fetch_row()
oppure FALSE in caso di errore.
mysql_fetch_lengths() memorizza le lunghezze di ogni colonna dell'ultima riga restituita da mysql_fetch_row(),
mysql_fetch_array() e mysql_fetch_object() in un array, iniziando con un indice pari a 0.
26
PHP
mysql_fetch_object
Carica una riga del risultato come un ogetto
object mysql_fetch_object ( resource risultato)
Restituisce un oggetto con proprietà che corrispondono alla riga caricata oppure FALSE se non ci sono più righe.
mysql_fetch_object() è simile a mysql_fetch_array(), con una differenza - viene restituito un oggetto invece che un
array. Indirettamente, questo significa che si ha solo accesso ai dati attraverso i nomi dei campi e non attraverso il
loro indice (i mumeri sono nomi di proprietà illeciti).
In termini di velocità, la funzione è identica a mysql_fetch_array() e quasi veloce come mysql_fetch_row() (la
differenza è insignificante).
mysql_fetch_row
Ottiene una riga del risultato come un array enumerato
array mysql_fetch_row ( resource risultato)
Restituisce un array che corrisponde ad una riga caricata oppure FALSE se non ci sono più righe.
mysql_fetch_row() carica una riga di dati dal risultato associato all'identificativo specificato. La riga è restituita com un
array. Ogni colonna del risultato è memorizzata in un indice dell'array, partendo dall'indice 0.
La susseguente chiamata a mysql_fetch_row() restituisce la successiva riga nell'intervallo del risultato oppure FALSE
se non ci sono più righe.
mysql_field_flags
Ottine i flag associati al campo specificato di un risultato
string mysql_field_flags ( resource risultato, int indice_campo)
mysql_field_flags() restituisce i flag del campo specificato. I flag sono restituiti come singole parole per flag separate
da un singolo spazio, in modo che sia possibile suddividere il valore restituito usando explode().
I seguenti flag sono restituiti, se la versione di MySQL è abbastanza aggiornata da supportarli: "not_null",
"primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment",
"timestamp".
Per motivi di compatibilità con il passato, anche mysql_fieldflags() può essere usata. Questo comunque è sconsigliato.
mysql_field_len
Restituisce la lunghezza del campo specificato
int mysql_field_len ( resource risultato, int indice_campo)
mysql_field_len() restituisce la lunghezza del campo specificato.
mysql_field_name
Ottiene il nome del campo specificato in un risultato
string mysql_field_name ( resource risultato, int indice_campo)
mysql_field_name() restituisce il nome del campo specificato dall'indice. risultato deve essere un identificativo di
risultato valido e indice_campo è lo spiazzamento numerico del campo.
Nota: indice_campo inizia da 0. L'indice del terzo campo è in realtà 2, l'indice del quarto campo è 3 e così via.
mysql_field_seek
Imposta il puntatore al risultato ad un determinato indice di campo
int mysql_field_seek ( resource risultato, int indice_campo)
Esegue il seek ad uno specifico indice di campo. Se la successiva chiamata a mysql_fetch_field() non include un indice
di campo, quello specificato in mysql_field_seek() viene restituito.
mysql_field_table
Ottiene il nome della tabella in cui si trova il campo specificato
string mysql_field_table ( resource risultato, int indice_campo)
Ottiene il nome della tabella in cui si trova il campo specificato.
27
PHP
mysql_field_type
Ottiene il tipo del campo specificato in un risultato
string mysql_field_type ( resource risultato, int indice_campo)
mysql_field_type() è simile alla funzione mysql_field_name(). Gli argomenti sono identici, ma viene restituito il tipo del
campo. Il tipo del campo sarà uno dei seguenti: "int", "real", "string", "blob" ed altri come dettagliati nella
Documentazione di MySQL.
mysql_free_result
Libera la memoria occupata dal risultato
bool mysql_free_result ( resource risultato)
mysql_free_result() libera tutta la memoria associata all'identificativo del risultato risultato.
mysql_free_result() deve essere richiamata solo se si è preoccupati sulla quantità di memoria usata dalle query che
restituiscono dei grandi risultati. Tutta la memoria associata al risultato è automaticamente liberata al termine
dell'esecuzione dello script.
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_get_client_info
Ottiene informazioni sul client MySQL
string mysql_get_client_info ( void)
mysql_get_client_info() restituisce una stringa che rappresenta la versione della libraria client.
mysql_get_host_info
Ottiene le informazioni sull'host MySQL
string mysql_get_host_info ( [resource identificativo_connessione])
mysql_get_host_info() restituisce una stringa che descrive il tipo di connessione in uso per identificativo_connessione,
includendo il nome dell'host del server. Se identificativo_connessione è omesso, sarà usata l'ultima connessione
aperta.
mysql_get_proto_info
Ottiene le informazion sul protocollo MySQL
int mysql_get_proto_info ( [resource identificativo_connessione])
mysql_get_proto_info() restituisce la versione del protocollo usata dalla connessione identificativo_connessione. Se
identificativo_connessione è omesso, sarà usata l'ultima connessione aperta.
mysql_get_server_info
Ottiene le informazioni sul server MySQL
string mysql_get_server_info ( [resource identificativo_connessione])
mysql_get_server_info() restituisce la versione del server usato dalla connessione identificativo_connessione. Se
identificativo_connessione è omesso, sarà usata l'ultima connessione aperta.
mysql_info
Ottiene le informazioni relative alla query più recente.
string mysql_info ( [resource identificativo_connessione])
mysql_info() restituisce informazioni dettagliate relative all'ultima query usando lo specifico identificativo_connessione.
Se identificativo_connessione non è specificato, viene considerata l'ultima connessione aperta.
mysql_info() restituisce una stringa per tutte le istruzioni elencate di seguito. Per tutte le altre restituisce FALSE. Il
formato della stringa dipende dall'istruzione data.
Nota: mysql_info() restituisce un valore non FALSE per le istruzioni INSERT ... VALUES solo se nell'istruzione sono
specificate liste di valori multipli.
28
PHP
mysql_insert_id
Ottiene l'identificativo generato dalla precedente operazione INSERT
int mysql_insert_id ( [resource identificativo_connessione])
mysql_insert_id() restituisce l'identificativo generato per una colonna AUTO_INCREMENT dal precedente query INSERT
usando lo specifico identificativo_connessione. Se identificativo_connessione non è specificato, viene considerata
l'ultima connessione aperta.
mysql_insert_id() restituisce 0 se la precedente query non ha generato un valore AUTO_INCREMENT. Se è necessario
salvare il valore per usarlo in seguito, assicurarsi di richiamare mysql_insert_id() immediatamente dopo la query che
ha generato il valore.
Nota: Il valore della funzione SQL LAST_INSERT_ID() di MySQL contiene sempre il più recente valore
AUTO_INCREMENT generato e non è azzerato dalle query.
Attenzione: mysql_insert_id() converte il tipo restituito dalla funzione nativa dell'API C di MySQL mysql_insert_id() al
tipo long (chiamata int nel PHP). Se la colonna AUTO_INCREMENT è del tipo BIGINT, il valore restituito da
mysql_insert_id() sarà inesatto. In questo caso si usi la funzione SQL di MySQL LAST_INSERT_ID() in una query SQL.
mysql_list_dbs
Elenca i database disponibili in un server MySQL
resource mysql_list_dbs ( [resource identificativo_connessione])
mysql_list_dbs() restituirà un risultato puntatore contenete i database resi disponibili dal demone mysql. Usare la
funzione mysql_tablename() per esplorare questo risultato puntatore o qualsiasi funzione per i risultati delle tabelle,
come mysql_fetch_array().
mysql_list_fields
Elenca i campi di un risultato MySQL
resource mysql_list_fields ( string nome_database, string nome_tabella [,
resource identificativo_connessione])
mysql_list_fields() recupera le informazioni relative ad una data tabella. Gli argomenti sono il nome del database ed il
nome della tabella. Viene restituito un risultato puntatore che può essere usato con mysql_field_flags(),
mysql_field_len(), mysql_field_name() e mysql_field_type().
mysql_list_processes
Elenca i processi MySQL
resource mysql_list_processes ( [resource identificativo_connessione])
mysql_list_processes() restituisce un risultato puntatore che descrive i thread attuali del server.
mysql_list_tables
Elenca le tabelle in un database MySQL
resource mysql_list_tables ( string database [, resource
identificativoi_connessione])
mysql_list_tables() accetta un nome di database e restituisce un risultato puntatore in modo molto simile alla funzione
mysql_query(). Usare la funzione mysql_tablename() per esplorare questo risultato puntatore o qualsiasi funzione per
i risultati delle tabelle, come mysql_fetch_array().
Il parametro database è il nome del database da cui recuperare la lista di tabelle. in caso di errore, mysql_list_tables()
restituisce FALSE.
mysql_num_fields
Ottiene il numero di campi nel risultato
int mysql_num_fields ( resource risultato)
mysql_num_fields() restituisce il numero di campi in un risultato.
29
PHP
mysql_num_rows
Ottiene il numero di righe in un risultato
int mysql_num_rows ( resource risultato)
mysql_num_rows() restituisce il numero di righe in un risultato. Questo comando è valido solo per le istruzioni
SELECT. Per recuperare il numero di righe coinvolte dalle query INSERT, UPDATE o DELETE, usare
mysql_affected_rows().
Nota: Se si usa mysql_unbuffered_query(), mysql_num_rows() non restituirà il valore corretto finché non sono
recuperate tutte le righe del risultato.
Per motivi di compatibilità con il passato, anche mysql_numrows() può essere usata. Questo comunque è sconsigliato.
mysql_pconnect
Apre una connessione persiostente ad un server MySQL
resource mysql_pconnect ( [string server [, string nome_utente [, string
password [, int flag_client]]]])
Restituisce un identificativo di connessione MySQL valido in caso di successo oppure FALSE in caso di errore.
mysql_pconnect() stabilisce una connessione ad un server MySQL. I seguenti valori predefiniti sono usati per i
parametri opzionali mancanti: server = 'localhost:3306', nome_utente = nome dell'utente prprietario del processo
server e password = password vuota. Il parametro flag_client può essere una combinatione delle costanti
MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE o MYSQL_CLIENT_INTERACTIVE.
Il parametro server può includere una numero di porta. Es. "hostname:porta" o un percorso ad un socket es.
":/percorso/a/socket" per il localhost.
mysql_pconnect() agisce in modo molto simile a mysql_connect() con due differenze principali.
Primo, quando si connette, la funzione tenta innanzitutto di trovare una connessione (persistente) già aperta avente gli
stessi host, username e password. Se viene trovata una connessione, viene restituito un identificativo a questa anziché
aprirne una nuova.
Secondo, la connessione al server SQL non sarà chiusa quando l'esecuzione dello script termina. La connessione
rimane invece aperta per usi futuri (mysql_close() non chiuderà le connessioni stabilite da mysql_pconnect()).
Questo tipo di link è perciò chiamato 'persistente'.
Nota: Notare che questo tipo di connessione funziona solo se si usa PHP come modulo.
Attenzione: l'uso di connessioni persistenti può richiedere un po' di messa a punto delle configurazioni di Apache e
MySQL per assicurarsi di non eccedere il numero di connessioni consentite da MySQL.
mysql_ping
Esegue un ping su una connessione al server o riconnette se non non esiste la connessione
bool mysql_ping ( [resource identificativo_connessione])
mysql_ping() controlla se una connessione al server funziona o meno. Se questa è caduta, viene tentata una
riconnessione automatica. Questa funzione può essere usata dagli script che rimangono inattivi per un lungo periodo
per controllare se il server ha chiuso la connessione o meno e riconnettersi se necessario. mysql_ping() restituisce
TRUE se la connessione al server è funzionante, altrimenti FALSE.
mysql_query
Invia una query MySQL
resource mysql_query ( string query [, resource identificativo_connessione [,
int modo_risultato]])
mysql_query() invia una query al database attualmente attivo sul server associato all'identificativo di conmnessione
specificato. Se identificativo_connessione non è specificato, viene considerata l'ultima connessione aperta. Se nessuna
connessione è aperta, la funzione prova a stabilire una connessione come se mysql_connect() fosse richiamata senza
argomenti ed usa questa.
Il paramentro opzionale modo_risultato può essere MYSQL_USE_RESULT e MYSQL_STORE_RESULT. Il valore
predefinito MYSQL_STORE_RESULT, così il risultato è bufferato.
Nota: La stringa della query non dovrebbe terminare con un punto e virgola.
Solo per le istruzioni SELECT, SHOW, EXPLAIN o DESCRIBE mysql_query() restituisce un identificativo di risorsa o
FALSE se la query non è stata eseguita correttamente. Per altri tipi di istruzioni SQL, mysql_query() restituisce TRUE in
caso di successo e FALSE in caso di errore. Un valore restituito diverso da FALSE indica che la query era lecita ed è
stata eseguita dal server. Questo non indica niente riguardo il numero di righe coinvolte o restituite. è assolutamente
possibile che una query abbia successo ma che non coinvolga o restituisca nessuna riga.
mysql_query() fallisce e restituisce FALSE anche se non si hanno i permessi per accedere alle tabelle cui la query fa
riferimento.
30
PHP
Assumendo che la query abbia successo, si può richiamare mysql_num_rows() per scoprire quante righe sono state
restituite da un'istruzione SELECT o mysql_affected_rows() per scoprire quante righe sono state coinvolte da
un'istruzione DELETE, INSERT, REPLACE o UPDATE.
Solo per le istruzioni SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() restituisce un nuovo identificativo di
risultato che si può passare a mysql_fetch_array() e ad altre funzioni che si occupano dei risultati delle tabelle.
Quando si conclude il trattamento del risultato, si possono liberare le risorse associate ad esso richiamando
mysql_free_result(). Comunqe la memoria sarà liberata automaticamente Al termnine dell'esecuzione dello script.
mysql_real_escape_string
Aggiunge le sequenze di escape ai caratteri speciali in una stringa per l'uso in una istruzione
SQL, tenendo conto dell'attuale set di caratteri della connessione.
string mysql_real_escape_string ( string stringa_seza_escape [, resource
identificativo_connessione])
Questa funzione aggiunge le sequenza di escape ai caratteri speciali in stringa_senza_escape, tenendo conto
dell'attuale set di caratteri della connessione in modo che sia sicuro usarla in mysql_query().
Nota: mysql_real_escape_string() non aggiunge le sequenze di escape a % ed a _.
mysql_result
Ottiene i dati dal risultato
mixed mysql_result ( resource risultato, int campo [, mixed campo])
mysql_result() restituisce i contenuti di una cella da un risultato MySQL. L'argomento campo può essere l'indice o il
nome del campo oppure il nome della tabella ed il nome del campo separati da un punto (nome_tabella.nome_campo).
Se il nome della colonna ha un alias ('select foo as bar from...'), usare l'alias al posto del nome della colonna.
Quando si lavora con un risultato di grandi dimensioni, si dovrebbero considerare l'uso delle funzioni che caricano
l'intera riga (specificate di seguito). Poiché queste funzioni restituiscono i contenuti di celle multiple in una chiamata a
funzione, sono MOLTO più veloci di mysql_result(). Notare anche che specificare un indice numerico per l'argomento
campo è molto più veloce che specificare un argomento del tipo nome_di_campo o nome_tabella.nome_campo.
Le chiamate a mysql_result() non dovrebbero esserse mescolate con chiamate ad altre funzioni che hanno a che fare
con i risultati.
Alternative raccomandate per alte prestazioni: mysql_fetch_row(), mysql_fetch_array() e mysql_fetch_object().
mysql_select_db
Seleziona un database MySQL
bool mysql_select_db ( string nome_database [, resource
identificativo_connessione])
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_select_db() imposta il database attualmente attivo sul server associato all'identificativo di connessione
specificato. Se nessin identificativo di connesione è specificato, viene considerata l'ultima connessione aperta. Se
nessuna connessione è aperta, la funzione proverà a stabilire una connessione come se mysql_connect() fosse
richiamata senza argomenti ed userà questa.
Ogni chiamata successiva a mysql_query() sarà fatta sul database attivo.
mysql_stat
Ottiene l'attuale stato del sistema
string mysql_stat ( [resource identificativo_connessione])
mysql_stat() restituisce l'attuale stato del server.
Nota: mysql_stat() attualmente restituisce solo le seguenti informazioni: uptime, thread, query, tabelle aperte, tabelle
svuotate e query al secondo. Per una lista completa delle altre variabili di stato si usi il comando SQL SHOW STATUS.
mysql_tablename
Ottiene il nome della tabella
string mysql_tablename ( resource risultato, int i)
mysql_tablename() prende il puntatore risultato dalla funzione mysql_list_tables() come un indice intero e restituisce il
nome di una tabella. La funzione mysql_num_rows() può essere usata per determinare il numero di tabelle nel
risultato puntatore. Usare la funzione mysql_tablename() per esplorare questo risultato puntatore o qualsiasi funzione
per i risultati delle tabelle, come mysql_fetch_array().
31
PHP
mysql_thread_id
Restituisce l'attuale thread ID
int mysql_thread_id ( [resource identificativo_connessione])
mysql_thread_id() restituisce l'attuale thread ID. Se La connessione è persa a ci si riconnette con mysql_ping(), il
thread ID cambia. Questo significa che non si dovrebbe ottenere il thread ID e memorizzarlo per impieghi successivi.
Si dovrebbe rilevare il thread ID quando è necessario.
mysql_unbuffered_query
Invia una query SQL a MySQL senza caricare e bufferare le righe risultanti
resource mysql_unbuffered_query ( string query [, resource
identificativo_connessione [, int modo_risultato]])
mysql_unbuffered_query() invia una query SQL query a MySQL senza caricare e bufferare le righe risultanti
automaticamente come fa mysql_query(). Da una parte, questo risparmia un considerevole quantità di memoria con le
query SQL che producono risulati di grandi dimensioni. Dall'altra parte, si può iniziare l'elaborazione dei risultati
immediatamente dopo che la prima riga è stata recuperata: non si deve attendere finché la query SQL sia
completamente eseguita. Quando si usano diverse connessioni a database, si deve specificare il paramentro opzionale
identificativo_connessione.
Il parametro opzionale modo_risultato può essere MYSQL_USE_RESULT e MYSQL_STORE_RESULT. Il valore predefinito
è MYSQL_USE_RESULT, quindi il risultato non è bufferato.
Nota: I benefici di mysql_unbuffered_query() hanno un costo: non si può usare mysql_num_rows() su un risultato
restituito da mysql_unbuffered_query(). Inoltre si debbono caricare tutte le righe risultanti da una query SQL non
bufferata prima di poter inviare una nuova query SQL a MySQL.
32
PHP
Funzioni Stringa
addcslashes
Quote string with slashes in a C style
string addcslashes ( string str, string charlist)
Returns a string with backslashes before characters that are listed in charlist parameter. It escapes \n, \r etc. in C-like
style, characters with ASCII code lower than 32 and higher than 126 are converted to octal representation.
Be careful if you choose to escape characters 0, a, b, f, n, r, t and v. They will be converted to \0, \a, \b, \f, \n, \r, \t
and \v. In PHP \0 (NULL), \r (carriage return), \n (newline) and \t (tab) are predefined escape sequences, while in C
all of these are predefined escape sequences.
charlist like "\0..\37", which would escape all characters with ASCII code between 0 and 31.
When you define a sequence of characters in the charlist argument make sure that you know what characters come
between the characters that you set as the start and end of the range.
Also, if the first character in a range has a lower ASCII value than the second character in the range, no range will be
constructed. Only the start, end and period characters will be escaped. Use the ord() function to find the ASCII value
for a character.
addslashes
Quote string with slashes
string addslashes ( string str)
Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters
are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte).
bin2hex
Convert binary data into hexadecimal representation
string bin2hex ( string str)
Returns an ASCII string containing the hexadecimal representation of str. The conversion is done byte-wise with the
high-nibble first.
chop
Alias of rtrim()
This function is an alias of rtrim().
chr
Return a specific character
string chr ( int ascii)
Returns a one-character string containing the character specified by ascii.
chunk_split
Split a string into smaller chunks
string chunk_split ( string body [, int chunklen [, string end]])
Can be used to split a string into smaller chunks which is useful for e.g. converting base64_encode output to match
RFC 2045 semantics. It inserts end (defaults to "\r\n") every chunklen characters (defaults to 76). It returns the new
string leaving the original string untouched.
convert_cyr_string
Convert from one Cyrillic character set to another
string convert_cyr_string ( string str, string from, string to)
33
PHP
This function returns the given string converted from one Cyrillic character set to another. The from and to arguments
are single characters that represent the source and target Cyrillic character sets. The supported types are:
count_chars
Return information about characters used in a string
mixed count_chars ( string string [, int mode])
Counts the number of occurrences of every byte-value (0..255) in string and returns it in various ways. The optional
parameter Mode default to 0. Depending on mode count_chars() returns one of the following:
0 - an array with the byte-value as key and the frequency of every byte as value.
1 - same as 0 but only byte-values with a frequency greater than zero are listed.
2 - same as 0 but only byte-values with a frequency equal to zero are listed.
3 - a string containing all used byte-values is returned.
4 - a string containing all not used byte-values is returned.
crc32
Calculates the crc32 polynomial of a string
int crc32 ( string str)
Generates the cyclic redundancy checksum polynomial of 32-bit lengths of the str. This is usually used to validate the
integrity of data being transmitted.
Nota: Because PHP's integer type is signed, and many crc32 checksums will result in negative integers, you need to
use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned crc32 checksum.
crypt
One-way string encryption (hashing)
string crypt ( string str [, string salt])
crypt() will return an encrypted string using the standard Unix DES-based encryption algorithm or alternative
algorithms that may be available on the system. Arguments are a string to be encrypted and an optional salt string to
base the encryption on. See the Unix man page for your crypt function for more information.
If the salt argument is not provided, one will be randomly generated by PHP.
Some operating systems support more than one type of encryption. In fact, sometimes the standard DES-based
encryption is replaced by an MD5-based encryption algorithm. The encryption type is triggered by the salt argument.
At install time, PHP determines the capabilities of the crypt function and will accept salts for other encryption types. If
no salt is provided, PHP will auto-generate a standard two character salt by default, unless the default encryption type
on the system is MD5, in which case a random MD5-compatible salt is generated. PHP sets a constant named
CRYPT_SALT_LENGTH which tells you whether a regular two character salt applies to your system or the longer twelve
character salt is applicable.
If you are using the supplied salt, you should be aware that the salt is generated once. If you are calling this function
recursively, this may impact both appearance and security.
The standard DES-based encryption crypt() returns the salt as the first two characters of the output. It also only uses
the first eight characters of str, so longer strings that start with the same eight characters will generate the same
result (when the same salt is used).
On systems where the crypt() function supports multiple encryption types, the following constants are set to 0 or 1
depending on whether the given type is available:
CRYPT_STD_DES - Standard DES-based encryption with a two character salt
CRYPT_EXT_DES - Extended DES-based encryption with a nine character salt
CRYPT_MD5 - MD5 encryption with a twelve character salt starting with $1$
CRYPT_BLOWFISH - Blowfish encryption with a sixteen character salt starting with $2$
Nota: There is no decrypt function, since crypt() uses a one-way algorithm.
echo
Output one or more strings
void echo ( string arg1 [, string argn...])
Outputs all parameters.
34
PHP
echo() is not actually a function (it is a language construct) so you are not required to use parentheses with it. In fact,
if you want to pass more than one parameter to echo, you must not enclose the parameters within parentheses. It is
not possible to use echo() in a variable function context.
echo() also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign.
explode
Split a string by string
array explode ( string separator, string string [, int limit])
Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the
string separator. If limit is set, the returned array will contain a maximum of limit elements with the last element
containing the rest of string.
If separator is an empty string (""), explode() will return FALSE. If separator contains a value that is not contained in
string, then explode() will return an array containing string.
Nota: Although implode() can, for historical reasons, accept its parameters in either order, explode() cannot. You must
ensure that the separator argument comes before the string argument.
fprintf
Write a formatted string to a stream
int fprintf ( resource handle, string format [, mixed args])
Write a string produced according to the formatting string format to the stream resource specified by handle..
The format string is composed of zero or more directives: ordinary characters (excluding %) that are copied directly to
the result, and conversion specifications, each of which results in fetching its own parameter. This applies to fprintf(),
sprintf(), and printf().
Each conversion specification consists of a percent sign (%), followed by one or more of these elements, in order:
An optional padding specifier that says what character will be used for padding the results to the right string size. This
may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character
can be specified by prefixing it with a single quote ('). See the examples below.
An optional alignment specifier that says if the result should be left-justified or right-justified. The default is rightjustified; a - character here will make it left-justified.
An optional number, a width specifier that says how many characters (minimum) this conversion should result in.
An optional precision specifier that says how many decimal digits should be displayed for floating-point numbers. This
option has no effect for other types than float. (Another function useful for formatting numbers is number_format().)
A type specifier that says what type the argument data should be treated as. Possible types:
% - a literal percent character. No argument is required.
b - the argument is treated as an integer, and presented as a binary number.
c - the argument is treated as an integer, and presented as the character with that ASCII value.
d - the argument is treated as an integer, and presented as a (signed) decimal number.
u - the argument is treated as an integer, and presented as an unsigned decimal number.
f - the argument is treated as a float, and presented as a floating-point number.
o - the argument is treated as an integer, and presented as an octal number.
s - the argument is treated as and presented as a string.
x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).
htmlspecialchars
Convert special characters to HTML entities
string htmlspecialchars ( string string [, int quote_style [, string charset]])
Certain characters have special significance in HTML, and should be represented by HTML entities if they are to
preserve their meanings. This function returns a string with some of these conversions made; the translations made
are those most useful for everyday web programming. If you require all HTML character entities to be translated, use
htmlentities() instead.
This function is useful in preventing user-supplied text from containing HTML markup, such as in a message board or
guest book application. The optional second argument, quote_style, tells the function what to do with single and
double quote characters. The default mode, ENT_COMPAT, is the backwards compatible mode which only translates
the double-quote character and leaves the single-quote untranslated. If ENT_QUOTES is set, both single and double
quotes are translated and if ENT_NOQUOTES is set neither single nor double quotes are translated.
The translations performed are:
'&' (ampersand) becomes '&'
35
PHP
'"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
''' (single quote) becomes ''' only when ENT_QUOTES is set.
'<' (less than) becomes '<'
'>' (greater than) becomes '>'
Note that this function does not translate anything beyond what is listed above. For full entity translation, see
htmlentities(). Support for the optional second argument was added in PHP 3.0.17 and PHP 4.0.3.
implode
Join array elements with a string
string implode ( string glue, array pieces)
Returns a string containing a string representation of all the array elements in the same order, with the glue string
between each element.
Nota: implode() can, for historical reasons, accept its parameters in either order. For consistency with explode(),
however, it may be less confusing to use the documented order of arguments.
join
Alias for implode()
This function is an alias of implode().
ltrim
Strip whitespace from the beginning of a string
string ltrim ( string str [, string charlist])
Nota: The second parameter was added in PHP 4.1.0
This function returns a string with whitespace stripped from the beginning of str. Without the second parameter,
ltrim() will strip these characters:
" " (ASCII 32 (0x20)), an ordinary space.
"\t" (ASCII 9 (0x09)), a tab.
"\n" (ASCII 10 (0x0A)), a new line (line feed).
"\r" (ASCII 13 (0x0D)), a carriage return.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.
You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters
that you want to be stripped. With .. you can specify a range of characters.
md5
Calculate the md5 hash of a string
string md5 ( string str [, bool raw_output])
Calculates the MD5 hash of str using the RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that
hash. The hash is a 32-character hexadecimal number. If the optional raw_output is set to TRUE, then the md5 digest
is instead returned in raw binary format with a length of 16.
Nota: The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE
See also crc32(), md5_file(), and sha1().
number_format
Format a number with grouped thousands
string number_format ( float number [, int decimals [, string dec_point [,
string thousands_sep]]])
number_format() returns a formatted version of number. This function accepts either one, two or four parameters (not
three):
If only one parameter is given, number will be formatted without decimals, but with a comma (",") between every
group of thousands.
36
PHP
If two parameters are given, number will be formatted with decimals decimals with a dot (".") in front, and a comma
(",") between every group of thousands.
If all four parameters are given, number will be formatted with decimals decimals, dec_point instead of a dot (".")
before the decimals and thousands_sep instead of a comma (",") between every group of thousands.
Nota: Only the first character of thousands_sep is used. For example, if you use foo as thousands_sep on the number
1000, number_format() will return 1f000.
ord
Return ASCII value of character
int ord ( string string)
Returns the ASCII value of the first character of string. This function complements chr().
parse_str
Parses the string into variables
void parse_str ( string str [, array arr])
Parses str as if it were the query string passed via an URL and sets variables in the current scope. If the second
parameter arr is present, variables are stored in this variable as array elements instead.
Nota: To get the current QUERY_STRING, you may use the variable $_SERVER['QUERY_STRING']. Also, you may want
to read the section on variables from outside of PHP.
print
Output a string
void print ( string arg)
Outputs arg. Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
print() is not actually a real function (it is a language construct) so you are not required to use parentheses with it.
printf
Output a formatted string
void printf ( string format [, mixed args])
Produces output according to format, which is described in the documentation for sprintf().
rtrim
Strip whitespace from the end of a string
string rtrim ( string str [, string charlist])
This function returns a string with whitespace stripped from the end of str. Without the second parameter, rtrim() will
strip these characters:
" " (ASCII 32 (0x20)), an ordinary space.
"\t" (ASCII 9 (0x09)), a tab.
"\n" (ASCII 10 (0x0A)), a new line (line feed).
"\r" (ASCII 13 (0x0D)), a carriage return.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.
You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters
that you want to be stripped. With .. you can specify a range of characters.
sprintf
Return a formatted string
string sprintf ( string format [, mixed args])
Returns a string produced according to the formatting string format.
The format string is composed of zero or more directives: ordinary characters (excluding %) that are copied directly to
the result, and conversion specifications, each of which results in fetching its own parameter. This applies to both
sprintf() and printf().
Each conversion specification consists of a percent sign (%), followed by one or more of these elements, in order:
37
PHP
An optional padding specifier that says what character will be used for padding the results to the right string size. This
may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character
can be specified by prefixing it with a single quote ('). See the examples below.
An optional alignment specifier that says if the result should be left-justified or right-justified. The default is rightjustified; a - character here will make it left-justified.
An optional number, a width specifier that says how many characters (minimum) this conversion should result in.
An optional precision specifier that says how many decimal digits should be displayed for floating-point numbers. This
option has no effect for other types than float. (Another function useful for formatting numbers is number_format().)
A type specifier that says what type the argument data should be treated as. Possible types:
% - a literal percent character. No argument is required.
b - the argument is treated as an integer, and presented as a binary number.
c - the argument is treated as an integer, and presented as the character with that ASCII value.
d - the argument is treated as an integer, and presented as a (signed) decimal number.
u - the argument is treated as an integer, and presented as an unsigned decimal number.
f - the argument is treated as a float, and presented as a floating-point number.
o - the argument is treated as an integer, and presented as an octal number.
s - the argument is treated as and presented as a string.
x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).
sscanf
Parses input from a string according to a format
mixed sscanf ( string str, string format [, string var1])
The function sscanf() is the input analog of printf(). sscanf() reads from the string str and interprets it according to the
specified format. If only two parameters were passed to this function, the values parsed will be returned as an array.
Any whitespace in the format string matches any whitespace in the input string. This means that even a tab \t in the
format string can match a single space character in the input string.
str_pad
Pad a string to a certain length with another string
string str_pad ( string input, int pad_length [, string pad_string [, int
pad_type]])
This functions returns the input string padded on the left, the right, or both sides to the specified padding length. If
the optional argument pad_string is not supplied, the input is padded with spaces, otherwise it is padded with
characters from pad_string up to the limit.
Optional argument pad_type can be STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH. If pad_type is not specified
it is assumed to be STR_PAD_RIGHT.
If the value of pad_length is negative or less than the length of the input string, no padding takes place.
str_repeat
Repeat a string
string str_repeat ( string input, int multiplier)
Returns input_str repeated multiplier times. multiplier has to be greater than or equal to 0. If the multiplier is set to 0,
the function will return an empty string.
str_replace
Replace all occurrences of the search string with the replacement string
mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count])
This function returns a string or an array with all occurences of search in subject replaced with the given replace value.
If you don't need fancy replacing rules, you should always use this function instead of ereg_replace() or
preg_replace().
In PHP 4.0.5 and later, every parameter to str_replace() can be an array.
If subject is an array, then the search and replace is performed with every entry of subject, and the return value is an
array as well.
38
PHP
If search and replace are arrays, then str_replace() takes a value from each array and uses them to do search and
replace on subject. If replace has fewer values than search, then an empty string is used for the rest of replacement
values. If search is an array and replace is a string; then this replacement string is used for every value of search.
str_shuffle
Randomly shuffles a string
string str_shuffle ( string str)
str_shuffle() shuffles a string. One permutation of all possible is created.
str_word_count
Return information about words used in a string
mixed str_word_count ( string string [, int format])
Counts the number of words inside string. If the optional format is not specified, then the return value will be an
integer representing the number of words found. In the event the format is specified, the return value will be an array,
content of which is dependent on the format. The possible value for the format and the resultant outputs are listed
below.
1 - returns an array containing all the words found inside the string.
2 - returns an associative array, where the key is the numeric position of the word inside the string and the value is
the actual word itself.
For the purpose of this function, 'word' is defined as a locale dependent string containing alphabetic characters, which
also may contain, but not start with "'" and "-" characters.
strchr
Alias for strstr()
This function is an alias of strstr().
strcmp
Binary safe string comparison
int strcmp ( string str1, string str2)
Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.
Note that this comparison is case sensitive.
strlen
Get string length
int strlen ( string str)
Returns the length of string.
strpos
Find position of first occurrence of a string
int strpos ( string haystack, string needle [, int offset])
Returns the numeric position of the first occurrence of needle in the haystack string. Unlike the strrpos(), this function
can take a full string as the needle parameter and the entire string will be used.
If needle is not found, strpos() will return boolean FALSE.
Attenzione: questa funzione può restituire il Booleano FALSE, ma può anche restituire un valore non-Booleano valutato
come FALSE, come ad esempio 0 o "". Per favore fare riferimento alla sezione Booleans per maggiori informazioni.
Usare l'operatore === per controllare il valore restituito da questa funzione.
strrchr
Find the last occurrence of a character in a string
string strrchr ( string haystack, string needle)
This function returns the portion of haystack which starts at the last occurrence of needle and goes until the end of
haystack.
39
PHP
Returns FALSE if needle is not found.
If needle contains more than one character, the first is used.
If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.
strrev
Reverse a string
string strrev ( string string)
strtok
Tokenize string
string strtok ( string arg1, string arg2)
strtok() splits a string (arg1) into smaller strings (tokens), with each token being delimited by any character from
arg2. That is, if you have a string like "This is an example string" you could tokenize this string into its individual
words by using the space character as the token.
Note that only the first call to strtok uses the string argument. Every subsequent call to strtok only needs the token to
use, as it keeps track of where it is in the current string. To start over, or to tokenize a new string you simply call
strtok with the string argument again to initialize it. Note that you may put multiple tokens in the token parameter.
The string will be tokenized when any one of the characters in the argument are found.
strtolower
Make a string lowercase
string strtolower ( string str)
Returns string with all alphabetic characters converted to lowercase.
Note that 'alphabetic' is determined by the current locale. This means that in i.e. the default "C" locale, characters
such as umlaut-A (Ä) will not be converted.
strtoupper
Make a string uppercase
string strtoupper ( string string)
Returns string with all alphabetic characters converted to uppercase.
Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as
umlaut-a (ä) will not be converted.
strtr
Translate certain characters
string strtr ( string str, string from, string to)
string strtr ( string str, array replace_pairs)
This function returns a copy of str, translating all occurrences of each character in from to the corresponding character
in to and returning the result.
If from and to are different lengths, the extra characters in the longer of the two are ignored.
strtr() can be called with only two arguments. If called with two arguments it behaves in a new way: from then has to
be an array that contains string -> string pairs that will be replaced in the source string. strtr() will always look for the
longest possible match first and will *NOT* try to replace stuff that it has already worked on.
substr_count
Count the number of substring occurrences
int substr_count ( string haystack, string needle)
substr_count() returns the number of times the needle substring occurs in the haystack string.
40
PHP
substr_replace
Replace text within a portion of a string
string substr_replace ( string string, string replacement, int start [, int
length])
substr_replace() replaces a copy of string delimited by the start and (optionally) length parameters with the string
given in replacement. The result is returned.
If start is positive, the replacing will begin at the start'th offset into string.
If start is negative, the replacing will begin at the start'th character from the end of string.
If length is given and is positive, it represents the length of the portion of string which is to be replaced. If it is
negative, it represents the number of characters from the end of string at which to stop replacing. If it is not given,
then it will default to strlen( string ); i.e. end the replacing at the end of string.
substr
Return part of a string
string substr ( string string, int start [, int length])
substr() returns the portion of string specified by the start and length parameters.
If start is non-negative, the returned string will start at the start'th position in string, counting from zero. For instance,
in the string 'abcdef', the character at position 0 is 'a', the character at position 2 is 'c', and so forth.
If start is negative, the returned string will start at the start'th character from the end of string.
If length is given and is positive, the string returned will contain at most length characters beginning from start
(depending on the length of string). If string is less than start characters long, FALSE will be returned.
If length is given and is negative, then that many characters will be omitted from the end of string (after the start
position has been calculated when a start is negative). If start denotes a position beyond this truncation, an empty
string will be returned.
trim
Strip whitespace from the beginning and end of a string
string trim ( string str [, string charlist])
This function returns a string with whitespace stripped from the beginning and end of str. Without the second
parameter, trim() will strip these characters:
" " (ASCII 32 (0x20)), an ordinary space.
"\t" (ASCII 9 (0x09)), a tab.
"\n" (ASCII 10 (0x0A)), a new line (line feed).
"\r" (ASCII 13 (0x0D)), a carriage return.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.
You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters
that you want to be stripped. With .. you can specify a range of characters.
ucfirst
Make a string's first character uppercase
string ucfirst ( string str)
Returns a string with the first character of str capitalized, if that character is alphabetic.
Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as
umlaut-a (ä) will not be converted.
ucwords
Uppercase the first character of each word in a string
string ucwords ( string str)
Returns a string with the first character of each word in str capitalized, if that character is alphabetic.
Nota: The definition of a word is any string of characters that is immediately after a whitespace (These are: space,
form-feed, newline, carriage return, horizontal tab, and vertical tab).
41
PHP
wordwrap
Wraps a string to a given number of characters using a string break character.
string wordwrap ( string str [, int width [, string break [, boolean cut]]])
Returns a string with str wrapped at the column number specified by the (optional) width parameter. The line is
broken using the (optional) break parameter.
wordwrap() will automatically wrap at column 75 and break using '\n' (newline) if width or break are not given.
If the cut is set to 1, the string is always wrapped at the specified width. So if you have a word that is larger than the
given width, it is broken apart. (See second example).
42
PHP
Componenti data-aware Delphi
Sono presentate le principali proprietà ed attributi dei componenti per l’accesso ai database via ADO e Interbase.
Componenti ADO
TADOConnection
TADOConnection encapsulates the ADO connection object. Use TADOConnection for connecting to ADO data stores.
The connection provided by a single TADOConnection component can be shared by multiple ADO command and
dataset components through their Connection properties.
TADOConnection allows you to control the attributes and conditions of a connection to a data store. Use the properties
of TADOConnection to control such attributes as record locking scheme (optimistic versus pessimistic), cursor type,
cursor location, isolation level, and connection timeout. Methods are also provided for implementing transactions and
retrieving metadata about the database to which this component connects.
Properties
Attributes
Description
property Attributes: TXactAttributes;
Connected
Attributes can contain one of the two TXactAttribute values (xaCommitRetaining and
xaAbortRetaining), both values, or neither value.
property Connected: Boolean;
Set Attributes to specify whether a connection object performs retaining commits or retaining
aborts. The two behaviors are independent of each other.
Set Connected to True to establish a connection to an ADO data store without opening a dataset.
Set Connected to False to close a connection. The default value for Connected is False.
An application can check Connected to determine the current status of a connection. If Connected is
True, the connection is active; if False, and the KeepConnection property is also False, then the
connection is inactive.
ConnectionString
Connected can also be used in a program to determine the success of a call to the Open method (a
True value in Connected) or the Close method (a False value).
property ConnectionString: WideString;
Set ConnectionString to specify the information needed to connect the ADO connection component
to the data store. The value used for ConnectionString consists of one or more arguments ADO uses
to establish the connection. Specify multiple arguments as a list with individual arguments
separated by semicolons.
A connection string may be saved to file for later use. Specify only the name of such a file in
ConnectionString to reuse a saved connection string.
The connection string may also contain login information such as user ID and password, for
automated logins.
When explicitly passing login information through either the Open method or the ConnectionString,
the LoginPrompt property should be set to False to prevent an unnecessary login dialog.
ADO supports the following four arguments for connection strings. Any other arguments (such as a
user ID and password) are not processed by ADO and simply passed on to the provider.
Argument
Meaning
Provider
The name of the provider to use for the connection.
File name
The name of a file containing connection information.
Remote Provider The name of the provider to use for a client-side connection.
Remote Server
The path name of the server to use for a client-side connection.
IsolationLevel
Note: After opening a connection, the contents of ConnectionString may be changed by ADO. One
example of this behavior is when ADO-defined arguments are mapped to their provider equivalents.
property IsolationLevel: TIsolationLevel;
KeepConnection
Set IsolationLevel to a valid TIsolationLevel value prior to starting a new transaction. Read
IsolationLevel after the transaction has been activated to determine the actual transaction isolation
level used. It is possible that a server will force an isolation level other than that requested if the
level requested is not supported.
property KeepConnection: Boolean;
Use IsolationLevel to specify the transaction isolation level for a connection. The transaction
isolation level determines how a transaction interacts with other simultaneous transactions when
they work with the same tables, and how much a transaction sees of the work performed by other
transactions. The default value for IsolationLevel is ilCursorStability.
43
DELPHI
Use KeepConnection to specify whether an application remains connected to a database even if no
associated dataset components are currently active. When KeepConnection is True (the default) the
connection is maintained. For connections to remote database servers, or for applications that
frequently open and close datasets, set KeepConnection to True to reduce network traffic, speed up
applications, and avoid logging in to the server each time the connection is reestablished.
When KeepConnection is False a connection is dropped when there are no open datasets. Dropping
a connection releases system resources allocated to the connection, but if a dataset is later opened
that uses the database, the connection must be reestablished and initialized.
Methods
BeginTrans
Description
function BeginTrans: Integer;
Call BeginTrans to start a new transaction in the data store the ADO connection component is
connected to.
BeginTrans returns a value of type Integer, indicating the nesting level of the new transaction.
A successful execution of BeginTrans triggers an OnBeginTransComplete event and sets the
InTransaction property to True.
Cancel
Note: The ADO connection object must have an active connection before BeginTrans can be
used.
procedure Cancel;
CommitTrans
Cancel must be used after an attempt to connect is initiated by calling the Open method (or
setting Connected to True) and before the connection has been successfully made or has timed
out.
procedure CommitTrans;
Execute
Call Cancel to abort an attempt to connect to an ADO data store. To use cancel, the connection
attempted must be asynchronous (the ConnectOptions property must be set to
coAsyncConnect).
Call CommitTrans to save any changes made during the current transaction and to end the
transaction.
A successful execution of CommitTrans triggers an OnCommitTransComplete event and sets the
InTransaction property to False.
function Execute(const CommandText: WideString; ExecuteOptions: TExecuteOptions =
[]): _RecordSet; overload;
procedure Execute(const CommandText: WideString; var RecordsAffected: Integer;
ExecuteOptions: TExecuteOptions = [eoExecuteNoRecords]); overload;
Call Execute to execute a command using the ADO connection object.
CommandText is the command to execute.
ExecuteOptions is a TExecuteOptions value that specifies the characteristics of the command
execution.
Execute returns a recordset if the command executed is one that generates a recordset.
GetProcedureNames
RecordsAffected indicates the number of records, if the command operates on data, that are
affected by the command after execution.
procedure GetProcedureNames(List: TStrings);
Populates a string list with the names of stored procedures in the database.
Call GetProcedureNames to retrieve a list of stored procedures in the associated database. The
names of the stored procedures are put into the already-existing string list object specified in
the List parameter.
GetFieldNames
Note: Any contents already in the target string list object are eliminated and overwritten by the
data produces by GetProcedureNames.
procedure GetFieldNames(const TableName: String; List: TStrings);
GetTableNames
Call GetFieldNames to retrieve a list of fields in a table. The names of the fields are put into the
already-existing string list object specified in the List parameter. Specify the table for which to
retrieve the names of fields in the TableName property.
procedure GetTableNames(List: TStrings; SystemTables: Boolean = False);
Populates a string list with the names of fields in a table.
Populates a string list with the names of tables in the database.
Call GetTableNames to retrieve a list of tables in the associated database.
List is the already-existing string list object into which the tables names are put.
Set SystemTables to indicate whether the list of table names should include the database’s
system tables.
Open
Note: Any contents already in the target string list object are eliminated and overwritten by the
data produces by GetTableNames.
procedure Open; overload;
procedure Open(const UserID: WideString; const Password: WideString); overload;
Call Open to initiate a connection to the database specified in the ConnectionString property.
UserID and Password parameters for Open can be optionally used to pass the user ID and login
password to the database server at the same time the request is made to connect.
44
DELPHI
Alternately, this login information may be passed in the value in ConnectionString.
OpenSchema
When explicitly passing login information through either the Open method or the
ConnectionString, the LoginPrompt property should be set to False to prevent an unnecessary
login dialog.
procedure OpenSchema(const Schema: TSchemaInfo; const Restrictions: OleVariant;
const SchemaID: OleVariant; DataSet: TADODataSet);
Call OpenSchema to open a connection and retrieve schema information from the associated
provider. OpenSchema retrieves the schema information in the form of a recordset that can then
be accessed through an ADO dataset component.
The Schema parameter is the type of schema information to retrieve, or in ADO terms, the query
type.
The Restrictions parameter is an array of query constraints for the specified type of schema
information. This lists the type of information requested for the entity specified by Schema. In
ADO terms, the elements of the array list the criteria for the query type.
SchemaID is the GUID for a provider-schema schema query not defined by the OLE DB
specification. This parameter is required if the Schema parameter is set to siProviderSpecific,
otherwise it is not used.
RollbackTrans
DataSet is the ADO dataset component (such as a TADOTable) into the Recordset property of
which the schema information is retrieved and through which the information is subsequently
accessed. After OpenSchema loads the ADO dataset component with the schema information,
use the standard navigation methods like First and Next to traverse the rows of data. Use the
Fields property or the FieldByName method of the dataset component to read the value of any
one column. Alternately, the schema data may be displayed using visual data-aware controls
and a TDataSource.
procedure RollbackTrans;
Close
A successful execution of RollbackTrans triggers an OnRollbackTransComplete event and sets the
InTransaction property to True.
procedure Close;
Call RollbackTrans to cancel any changes made during the current transaction and to end the
transaction.
Call Close to disconnect from the remote source of database information. Before the connection
component is deactivated, all associated datasets are closed. Calling Close is the same as setting
the Connected property to False.
In most cases, closing a connection frees system resources allocated to the connection.
Note: If a previously active connection is closed and then reopened, any associated datasets
must be individually reopened; reopening the connection does not automatically reopen
associated datasets.
TADOCommand
The TADOCommand represents the ADO Command object. Use TADOCommand for issuing commands against a data
store accessed through an ADO (ActiveX Data Objects) provider.
The TADOCommand component executes the command specified in its CommandText property. One command may be
executed at a time. Parameters, if the command includes them, are specified in its Parameters property. The
command is executed by a call to the Execute method.
TADOCommand can either use a TADOConnection object to connect to a data store (through its Connection property)
or connect directly to the data store if the connection information is specified in the ConnectionString property.
TADOCommand is most often used for executing data definition language (DDL) SQL commands or to execute a stored
procedure that does not return a result set. For SQL statements that return a result set, TADODataSet, TADOQuery, or
TADOStoredProc is better suited. The Execute method of TADOCommand is, however, capable of returning a
recordset. To use that recordset, however, you will need a separate ADO dataset component.
As a close representation of the ADO Command object, many of the TADOCommand properties and methods have the
same name as those of the ADO Command object and serve the same purpose. For example, the CommandType
property and Execute methods are the same in both the TADOCommand component and ADO Command object. Note
that subsequent versions of ADO may introduce changes in the underlying ADO command object, which will change
the behavior of TADOCommand. As a result, you may want to view the Microsoft Data Store SDK documentation for
additional information about the behavior of TADOCommand.
Properties
CommandText
CommandTimeout
Description
property CommandText: WideString;
Use CommandText to specify the command to execute using the ADO command component.
CommandText is a textual representation of the command such as an SQL statement, a table
name, or the name of a stored procedure to execute.
If the command includes parameters, as might be the case with an SQL statement or stored
procedure, access the them through the Parameters property.
property CommandTimeout: Integer;
Use CommandTimeout to indicate the time, in seconds, that can elapse before an attempt to
45
DELPHI
execute the command is considered unsuccessful. The default value for CommandTimeout is 30.
CommandType
If a command is successfully executed prior to the expiration of the seconds specified,
CommandTimeout has no effect.
property CommandType: TCommandType;
Set CommandType to indicate the type of command that is contained in the CommandText
property. The value in CommandType should agree with that of CommandText. For instance, if
CommandText is the name of a table, CommandType should be cmdTable or cmdTableDirect.
The default value of CommandType is cmdUnknown. While CommandType may be left as
cmdUnknown for all commands, setting CommandType to explicitly indicate the type of the
command results in better performance. When CommandType is cmdUnknown, ADO must
evaluate the command to determine its type, which slows the operation.
Note: The TCommandType constants cmdTable, cmdTableDirect, and cmdOpenFile should not be
used with commands executed from a TADOCommand component.
property Connection: TADOConnection;
Connection
Set Connection to specify the TADOConnection the command component uses to connect to the
data store.
Note: the connection of an ADO command component to a data store can either be through a
TADOConnection specified in the Connection property or directly through the connection string
specified in ConnectionString. These two properties are mutually exclusive.
ConnectionString
ExecuteOptions
ParamCheck
Specifies the connection information for the database.
property ExecuteOptions: TExecuteOptions;
Set ExecuteOptions to control the characteristics of a command executed from the ADO dataset
component.
property ParamCheck: Boolean;
Parameters
Set ParamCheck to specify whether or not the Parameters property is initialized using ":Param"
style parameters in an SQL statement specified in the CommandText property. If the SQL
statement in CommandText only contains "?" style parameters, the Parameters property will only
be initialized if the OLE DB provider returns parameter information for an SQL command.
Otherwise, the parameters must be explicitly created using the TParameters.CreateParameter
method.
property Parameters: TParameters;
Prepared
Note: Parameters is only applicable when the ADO command object issues an SQL statement or
executes a stored procedure (the CommandType is cmdText or cmdStoredProc) and parameters
are actually used in the SQL statement or stored procedure.
property Prepared: WordBool;
Access Parameters at runtime to view and set parameter names, values, and data types
dynamically (at design time use the collection editor for the Parameters property to set parameter
information). Parameters is a zero-based array of TParameter parameter records. Index specifies
the array element to access.
Set Prepared before calling the Execute method to specify whether ADO prepares the command. If
Prepared is set to True and the command component is connected to a data store, ADO prepares
the command before executing it. If Prepared is set to False, ADO does not prepare the command.
The default value of Prepared is False.
Methods Description
procedure Assign(Source: TPersistent); override;
Assign
Call Assign to copy the property values from one ADO command object to the properties of the current ADO
command object.
Source is the ADO command object from which property values are copied. Source must be another
TADOCommand object or an instance of a descendant class.
Assign copies the values of the following properties specific to ADO command objects:
Cancel
Execute
Connection, if assigned; otherwise the ConnectionString property is copied.
CommandText.
CommandTimeout.
CommandType.
Prepared.
Parameters.
procedure Cancel;
Call Cancel abort the execution of a command executed by the command component. To use Cancel to
abort a command, the command by have been executed asynchronously (the eoAsyncExecute
TExecuteOption must have been used). If the command is not asynchronous an exception is raised. Use the
command component’s ExecuteOptions to specify that a command is executed asynchronously.
Note: To successfully cancel a command, Cancel must be called before the number of seconds specified in
CommandTimeout have expired.
function Execute: _Recordset; overload;
function Execute(const Parameters: OleVariant): _Recordset; overload;
function Execute(var RecordsAffected: Integer; const Parameters: OleVariant): _RecordSet;
overload;
46
DELPHI
Call Execute to immediately execute the command specified in the CommandText property.
RecordsAffected indicates the number of records, if the command operates on data, that are affected by the
command after execution.
Parameters is a collection of parameters for the command, unnecessary if the command does not use any
parameters.
When a command is executed that creates a recordset, Execute returns the recordset and it must be
accessed through an ADO dataset component. To do this, assign the return value of Execute directly to the
recordset property of an ADO data set component.
TADOTable
TADOTable is a dataset component that encapsulates a table accessed through an ADO data store.
Use TADOTable to access data in a single database table using ADO. TADOTable provides direct access to every record
and field in an underlying database table. An ADO table component can also work with a subset of records within a
database table using ranges and filters.
Properties
MasterSource
Description
property MasterSource: TDataSource;
Use MasterSource to specify the name of the data source component whose DataSet property
identifies a dataset to use as a Master table in establishing a Master-Detail relationship between this
table and another one.
After setting the MasterSource property, specify which fields to use in the master table by setting
the MasterFields property. At runtime each time the current record in the master table changes, the
new values in those fields are used to select corresponding records in this table for display.
ReadOnly
TableDirect
TableName
Note: At design time choose an available data source from the MasterSource property’s drop-down
list in the Object Inspector.
property ReadOnly: Boolean
Use the ReadOnly property to prevent users from updating, inserting, or deleting data through the
TADOTable. By default, ReadOnly is False, meaning users can alter a table’s data.
property TableDirect: Boolean read GetTableDirect write SetTableDirect default
False;
Set TableDirect to specify whether the table is accessed simply via its name or whether a
background SQL statement is used. Not all providers support accessing a table by its name and
require that this access be done with a SELECT statement. If TableDirect is True the data retrieval
request uses a background SQL statement and all columns are simply returned. If it is False, the
TADOTable component creates a SELECT statement to retrieve the table's data. The default value of
TableDirect is False.
property TableName: WideString;
Use TableName to specify the base table in a database on which the ADO table component
operates. Data is retrieved from and changes written to this base table.
Before setting or changing the value of TableName, you should deactivate the ADO table component
by calling its Close method or setting its Active property to False.
At design-time, if a valid connection to a database can be established, the Object Inspector provides
a drop-down list of names of available tables.
Connection
Specifies the ADO connection component to use.
ConnectionString Specifies the connection information for the data store.
property CursorLocation: TCursorLocation;
CursorLocation
Use CursorLocation to indicate whether the cursors that use the connection object to connect to the
ADO datastore use a client-side or server-side cursor library. CursorLocation only affects
connections opened after the property is set. The default value for CursorLocation is clUseClient.
A client-side cursor offers more flexibility. All data is retrieved to the local machine and then
operated on there, allowing operations not normally supported by servers like sorting and resorting
the data and additional filtering. SQL statements are executed at the server, so for statements that
restrict the result set with a WHERE clause, only the reduced result set is retrieved to a local cursor.
CursorType
A server-side cursor offers less flexibility, but may be more advantageous (or necessary) for large
result sets. Using a server-side cursor becomes necessary when the sheer size of a result set
exceeds the available disk space that would be needed to create the client-side cursor. Also, many
servers only support unidirectional cursors. This would preclude moving the record pointer in the
dataset backward (even one record) through the result set.
property CursorType: TCursorType;
MasterFields
The default value of CursorType is ctKeyset.
property MasterFields: String;
Set CursorType to indicate the type of cursor the ADO dataset uses for the recordset when it is
opened. CursorType must be set prior to activating the dataset component. Among other cursor
aspects, CursorType affects directional scrolling through a recordset and the visibility of changes
made by other users.
47
DELPHI
Use MasterFields after setting the MasterSource or DataSource property to specify the names of one
or more fields in another, master, dataset that are used to establish a Master-Detail relationship
between this dataset and the master dataset. The master dataset is specified by assigning its data
source to the MasterSource or DataSource property.
MasterFields is a string containing one or more field names in the master dataset. When the
datasets are related based on two fields, separate field names with semicolons.
Each time the current record in the master dataset changes, the new values in those fields are used
to select corresponding records in this table for display.
MaxRecords
RecNo
Note: At design time, use the Field Link designer to establish the master-detail relationship between
two tables.
property MaxRecords: Integer
Use MaxRecords to control the number of rows the provider for the ADO dataset component returns
from the data source. Set MaxRecords to indicate the maximum number of rows. The default value
for MaxRecords is 0 (zero), which places no limits on the result set.
property RecNo: Integer;
Read RecNo at runtime to determine the ordinal position of the active record within the dataset’s
recordset. The dataset must be active for RecNo to have a valid value. When a dataset component
is active, RecNo will be a number between one and the total number of rows in the recordset
(reflected in the RecordCount property).
The value of RecNo for a given row in a recordset is relative to the rows that precede the current
row. Thus, if a check of RecNo for a row indicates 10 and then a preceding row is deleted, a
subsequent inspection of RecNo will show a new position of 9.
In the example below, the RecNo and RecordCount properties of a TCustomDataSet descendant are
used to display the current record's number and the total number of records in a TStatusBar
component. This would be done in a handler for the AfterScroll event of the ADO dataset
component so that it is updated after each row pointer movement.
Set RecNo at runtime to move the record pointer to the record at the specified absolute position
within the recordset. Use the value of the RecordCount property to determine the maximum
number to which RecNo can be set.
RecordCount
Note: The number of rows indicated might be less than the total number of rows in a table. This can
happen when the rows retrieved as a recordset for a dataset component are a conditional subset of
the table.
property RecordCount: Integer;
RecordSize
The dataset component must be active for RecordCount to provide a valid number. Should ADO not
be able to determine that actual number of rows, RecordCount will return a value of negative one (1). Note: The number of rows indicated might be less than the total number of rows in a table. This
can happen when the rows retrieved as a recordset for a dataset component are a conditional
subset of the table.
property RecordSize: Word;
Examine RecordCount to determine the total number of records in the recordset of the dataset
component. Applications might use this property with RecNo to iterate through all the records in a
dataset, though typically record iteration is handled with calls to First, Last, MoveBy, and Prior using
Eof and Bof to set the limits of row traversing.
RecordSize is an abstract property that is redeclared and implemented in descendant objects
derived from TCustomADODataSet. For TCustomADODataSet, RecordSize is meaningless and
always returns a value of 0 (zero).
Methods Description
Open
Call Open to set the Active property for the dataset to True. When Active is True, data can be populated
with data. It can read data from a database or other source (such as a provider). Depending on the
CanModify property, active datasets can post changes.
If an error occurs during the dataset open, dataset state is set to dsInactive, and any cursor is closed.
Close
Call Close to set the Active property of a dataset to False. When Active is False, the dataset is closed; it
cannot read or write data and data-aware controls can’t use it to fetch data or post edits.
An application must close the dataset before changing properties that affect the status of the database or
the controls that display data in an application. For example, to change the DataSource property for a
dataset, the dataset must be closed. Closing the dataset puts it into the dsInactive state.
procedure Requery(Options: TExecuteOptions = []);
Requery
Call Requery to refresh the recordset. Requery updates the dataset by re-executing the original command
or SQL statement that produced the recordset.
The effects of Requery are the same as calling the dataset’s Close method and then its Open method.
However, there are circumstances when one means of refreshing the recordset is better than the other. The
values in properties like CursorLocation, CursorType, and LockType cannot be changed while the dataset is
open, so Requery can only refresh the recordset using the existing values in these properties. To refresh
the recordset using different values for these properties, effect the refresh using the Close and Open
methods.
Options is a TExecuteOptions value that specifies the characteristics of the command execution affected by
the requery that produces the recordset for the dataset.
48
DELPHI
TADOQuery
TADOQuery provides the means for issuing SQL against an ADO data store.
Use TADOQuery to access one or more tables in a data store using SQL statements.
Retrieve data from tables in an ADO data store using SELECT statements. Perform actions on tables and other
metadata objects in an ADO data store with statements like INSERT, DELETE, UPDATE, ALTER TABLE, and CREATE
TABLE. Execute stored procedures.
Properties
DataSource
Description
property DataSource: TDataSource;
Set DataSource to automatically fill parameters in a query with fields values from another dataset.
Parameters that have the same name as fields in the other dataset are filled with the field values.
Parameters with names that are not the same as fields in the other dataset do not automatically get
values, and must be programmatically set.
If the SQL statement contains parameters with the same name as fields in the other dataset, do not
manually set values for these parameters. Any values programmatically set, such as by using the
Parameters property or the ParamByName method, will be overridden with automatic values.
Parameters of other names must be programmatically given values. These parameters are unaffected
by setting DataSource.
RowsAffected
SQL
DataSource can be set at runtime or at design-time using the Object Inspector. At design-time, select
the desired TDataSource from the drop-down list or type in the name.
property RowsAffected: Integer;
Inspect RowsAffected to determine how many rows were updated or deleted by the last query
operation. If no rows were updated or deleted, RowsAffected has a value of zero. RowsAffected will
have a value of –1 if the execution of the SQL statement could not be executed due to an error
condition. This latter situation would typically follow the raising of an exception.
property SQL: TStrings;
Use SQL to provide the SQL statement that an ADO query component executes when its ExecSQL or
Open method is called.
The SQL statement provided to the SQL property may contain replaceable parameters, following
standard ADO syntax conventions. Parameters are created and stored in the Parameters property.
At design-time, edit the SQL statement using the property editor invoked by clicking the ellipsis button
of the property in the Object Inspector. At runtime, use properties and methods of string list objects to
clear the current contents, add new contents, or to modify existing contents.
Prepared
Note: Delphi does not evaluate the SQL sent to the database via a TADOQuery component. The SQL
used must be valid for the particular database type accessed via ADO. Any error messages passed back
to the application will have originated at the ADO or database level, and so will have error codes and
messages specific to those systems.
property Prepared: Boolean;
Specifies whether the command is prepared before execution.
Set Prepared before calling the Open method to specify whether ADO prepares the command used to
create the dataset’s recordset. If Prepared is set to True and the dataset component is connected to a
data store, ADO prepares the command before executing it. If Prepared is set to False, ADO does not
prepare the command.
The default value of Prepared is False.
Methods Description
function ExecSQL: Integer;
ExecSQL
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to
execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE
TABLE).
ExecSQL returns an integer value reflecting the number of rows affected by the executed SQL statement.
Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to True.
To speed performance, an application should ordinarily prepare the query by setting the Prepared property
to True before calling ExecSQL for the first time.
Open
Opens the dataset.
Close
Closes a dataset.
Requery
Refreshes the recordset.
49
DELPHI
Componenti Interbase
TIBDatabase
TIBDatabase encapsulates an InterBase database connection.
Use TIBDatabase to encapsulate an InterBase database connection. All TIBCustomDataSet descendants and TIBSQL
use the TIBDatabase component to gain access to databases.
Properties
Description
property Connected : Boolean;
Connected
Set Connected to True to establish a database connection without opening a dataset. Set
Connected to False to close a database connection. An application can check Connected to
determine the current status of a database connection. If Connected is True, the database
connection is active; if False, then the connection is inactive.
property DatabaseName: String;
DatabaseName
Use DatabaseName to specify the name of the database to use with a database component. For
local InterBase databases, this can be a filename.
To connect to an InterBase database on a remote server using TCP/IP the syntax is
<server_name>:<filename>.
To connect to an InterBase database on a remote server using NetBEUI, the syntax is:
\\<server_name>\<filename>.
DefaultTransaction
To connect to an InterBase database on a remote server using SPX, the syntax is:
<server_name>@<filename>.
property DefaultTransaction: TIBTransaction;
IdleTimer
A single database connection can manage one or more transactions. DefaultTransaction is a
convenient way to specify a default transaction to a database connection.
property IdleTimer: Integer;
Params
Use DefaultTransaction to set or return the default database transaction.
Use IdleTimer to indicate how long the database should wait before automatically terminating the
connection.
property Params: TStrings;
Use Params to specify the database parameters to pass to the InterBase server.
Database parameters are passed to the server as text in order to establish the connection. For
example:
user_name=sysdba
password=masterkey
sql_role_name=finance
TIBTransaction
TIBTransaction provides discrete transaction control over a one or more database connections in a database
application.
All TIBCustomDataSet descendants and TIBSQL need to use a transaction along with a database component to gain
access to data in a database.
Note:In applications that connect an InterBaseExpress dataset to a client dataset, every query must be in its own
transaction. You must use one transaction component for each query component.
Properties
Active
DatabaseCount
Databases
DefaultAction
Description
property Active: Boolean;
Use Active to determine or set a transaction’s active state.
property DatabaseCount: Integer;
Use DatabaseCount to determine the number of databases involved in a transaction.
property Databases[Index: Integer]: TIBDatabase;
Use Databases to return the database at the given integer index.
type TTransactionAction = (taRollback, taCommit, taRollbackRetaining,
taCommitRetaining);
property DefaultAction: TTransactionAction;
Use DefaultAction to what action the transaction should take when the IdleTimer limit is met. The
transaction action can be one of the following:
taRollback
Rolls back the transaction
taCommit
Commits the transaction
taRollbackRetaining
Rolls back the transaction, but retains the current transaction
50
DELPHI
contextNote: You must install InterBase 6 to use this feature.
DefaultDatabase
taCommitRetaining
Commits the transaction, but retains the current transaction context
property DefaultDatabase: TIBDatabase;
InTransaction
Use DefaultDatabase to set or return the default database for the transaction.
property InTransaction: Boolean;
Params
The value of InTransaction cannot be changed directly. Calling StartTransaction sets InTransaction
to True. Calling Commit or Rollback sets InTransaction to False.
property Params: TStrings;
Examine InTransaction at run-time to determine if a database transaction is currently in progress.
InTransaction is True if a transaction is in progress, False otherwise.
Use Params to examine and set parameters in the transaction parameter buffer. Refer to the
Interbase API Guide for the names of the parameters to provide.
Methods
StartTransaction
Description
procedure StartTransaction;
Call StartTransaction to begin a new transaction against the database server. Before calling
StartTransaction, an application should check the status of the InTransaction property. If
InTransaction is True, indicating that a transaction is already in progress, a subsequent call to
StartTransaction without first calling Commit or Rollback to end the current transaction raises an
exception.
Updates, insertions, and deletions that take place after a call to StartTransaction are held by the
server until an application calls Commit to save the changes or Rollback is to cancel them.
procedure Commit;
Commit
Permanently stores updates, insertions, and deletions of data associated with the current
transaction, and ends the current transactions.
Call Commit to permanently store to the database server all updates, insertions, and deletions of
data associated with the current transaction and then end the transaction. The current transaction
is the last transaction started by calling StartTransaction.
CommitRetaining
Note: Before calling Commit, an application may check the status of the InTransaction property. If
an application calls Commit and there is no current transaction, an exception is raised.
procedure CommitRetaining;
Rollback
Note: Before calling CommitRetaining, an application may check the status of the InTransaction
property. If an application calls CommitRetaining and there is no current transaction, an exception
is raised.
procedure Rollback;
Call CommitRetaining to permanently store to the database server all updates, insertions, and
deletions of data associated with the current transaction and then retain the transaction context.
The current transaction is the last transaction started by calling StartTransaction.
Cancels all updates, insertions, and deletions for the current transaction and ends the transaction.
Call Rollback to cancel all updates, insertions, and deletions for the current transaction and to end
the transaction. The current transaction is the last transaction started by calling StartTransaction.
RollbackRetaining
Note: Before calling Rollback, an application may check the status of the InTransaction property. If
an application calls Rollback and there is no current transaction, an exception is raised.
procedure RollbackRetaining;
Call RollbackRetaining to roll back to the database server all updates, insertions, and deletions of
data associated with the current transaction and then retain the transaction context. The current
transaction is the last transaction started by calling StartTransaction.
Note: Before calling RollbackRetaining, an application may check the status of the InTransaction
property. If an application calls RollbackRetaining and there is no current transaction, an exception
is raised. Note: You must install InterBase 6 to use this feature.
TIBTable
TIBTable is a dataset component that encapsulates a database table.
Use TIBTable to access data in a single table or view. TIBTable provides direct access to every record and field in an
underlying InterBase database table. A table component can also work with a subset of records within a database
table using filters.
Properties Description
property Transaction: TIBTransaction;
Transaction
Identifies the transaction under which the query executes.
Use Transaction to determine the transaction that contains any query this dataset executes. Set the
properties of this transaction object to control how the transaction executes, or set the Transaction
property to cause this dataset’s queries to be included in an existing transaction.
51
DELPHI
TableName
property TableName: String;
CanModify
Note:
To set TableName, the Active property must be False.
property CanModify: Boolean;
Use TableName to specify the name of the database relation this component encapsulates. To set
TableName to a meaningful value, the Database property should already be set. If Database is set at
design time, then select a valid table name from the TableName drop-down list in the Object Inspector.
Check the status of CanModify to determine if an application can modify a dataset in any way. If
CanModify is True, the dataset can be modified. If CanModify is False, the table is read-only.
CanModify is set automatically when an application opens a table. If the ReadOnly property of a table
component is True, then CanModify is set to False. CanModify can also be false because:
Another application currently has exclusive write access to the table.
The table is read-only by database design.
Note: Even if CanModify is True, it is not a guarantee that a user will be able to insert or update records
in a table. Other factors may come in to play, for example, SQL access privileges.
Active
Specifies whether or not a dataset is open.
TIBQuery
TIBQuery executes an InterBase SQL statement.
Use TIBQuery to access one or more tables in a database using SQL statements. The TIBQuery component provides a
read-only dataset, and adapts well to the InterBase client/server environment. To update the result set that TIBQuery
represents, use this component in conjunction with a TIBUpdateSQL component.
Query components are useful because they can
•
Access more than one table at a time (called a “join” in SQL).
•
Automatically access a subset of rows and columns in its underlying table(s), rather than always returning all rows
and columns.
Note: TIBQuery is of particular importance to the development of scaleable database applications. If there is any
chance that an application built to run against local databases will be scaled to a remote SQL database server in the
future, use TIBQuery components from the start to ensure easier scaling later.
Properties
Description
Transaction
Params
Identifies the transaction under which the query executes.
property Params: TParams;
Prepared
Note: An easier way to set and retrieve parameter values when the name of each parameter is known
is to call ParamByName. ParamByName cannot, however, be used to change a parameter’s data type or
name.
property Prepared: Boolean;
RowsAffected
SQL
Access Params at runtime to view and set parameter names, values, and data types dynamically (at
design time use the collection editor for the Params property to set parameter information). Params is
a zero-based array of TParams parameter records. Index specifies the array element to access.
Examine Prepared to determine if a query is already prepared for execution. If Prepared is True, the
query is prepared, and if Prepared is False, the query is not prepared. While a query need not be
prepared before execution, execution performance is enhanced if the query is prepared beforehand,
particularly if it is a parameterized query that is executed more than once using the same parameter
values.
Note: An application can change the current setting of Prepared to prepare or unprepare a query. If
Prepared is True, setting it to False calls the Unprepare method to unprepare the query. If Prepared is
False, setting it to True calls the Prepare method to prepare the query. Generally, however, it is better
programming practice to call Prepare and Unprepare directly. These methods automatically update the
Prepared property.
property RowsAffected: Integer;
Check RowsAffected to determine how many rows were updated or deleted by the last query operation.
If RowsAffected is -1, the query did not update or delete any rows.
property SQL: TStrings;
Use SQL to provide the SQL statement that a query component executes when its ExecSQL or Open
method is called. At design time the SQL property can be edited by invoking the String List editor in the
Object Inspector.
The SQL property may contain only one complete SQL statement at a time.
Methods
ExecSQL
Description
procedure ExecSQL;
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to
execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE
TABLE).
Note: For SELECT statements, call Open instead of ExecSQL.
52
DELPHI
ParamByName
ExecSQL prepares the statement in SQL property for execution if it has not already been prepared. To
speed performance, an application should ordinarily call Prepare before calling ExecSQL for the first
time.
function ParamByName(const Value: string): TParam;
Call ParamByName to set or use parameter information for a specific parameter based on its name.
Value is the name of the parameter for which to retrieve information.
Prepare
ParamByName is primarily used to set an parameter’s value at runtime.
procedure Prepare;
Call Prepare to have the remote database server allocate resources for the query and to perform
additional optimizations. Calling Prepare before executing a query improves application performance.
Delphi automatically prepares a query if it is executed without first being prepared. After execution,
Delphi unprepares the query. When a query will be executed a number of times, an application should
always explicitly prepare the query to avoid multiple and unnecessary prepares and unprepares.
Preparing a query consumes some database resources, so it is good practice for an application to
unprepare a query once it is done using it. The UnPrepare method unprepares a query.
UnPrepare
Note: When you change the text of a query at runtime, the query is automatically closed and
unprepared.
procedure UnPrepare;
Call UnPrepare to free the resources allocated for a previously prepared query on the server and client
sides.
Preparing a query consumes some database resources, so it is good practice for an application to
unprepare a query once it is done using it. The UnPrepare method unprepares a query.
Note: When you change the text of a query at runtime, the query is automatically closed and
unprepared.
TIBDataSet
TIBDataSet executes InterBase SQL statements.
Use TIBDataSet to execute InterBase SQL statements. Each TIBDataSet component has properties for a statement to
fetch data (typically an SQL SELECT statement), a statement to modify those records, one for inserting records, one
for deleting records, and one to refresh the dataset.
TIBDataSet buffers the result set, making it completely scrollable. Since TIBDataSet is a descendant of TDataSet, it
works well with all data-aware components.
Properties
Description
Transaction
Identifies the transaction under which the query executes.
property Database: TIBDatabase;
Database
DataSource
Use Database to access the properties, events, and methods of the database component associated
with this dataset.
property DataSource: TDataSource;
DeleteSQL
Use DataSource to get the data source of another dataset.
property DeleteSQL: TStrings;
InsertSQL
Use DeleteSQL to delete rows in the dataset.
property InsertSQL: TStrings;
SelectSQL
Use InsertSQL to insert rows into the dataset.
property SelectSQL: TStrings;
Params
Use SelectSQL to access the SQL object that encapsulates the SelectSQL statement.
property Params: TIBXSQLDA;
ForcedRefresh
Use Params to set up the parameters for the SQL object specified by the QSelect property. Params is
the same as the SQLParams property.
property ForcedRefresh: Boolean;
Methods
ExecSQL
Holds the SQL statement used to delete rows from the dataset.
Holds the SQL statement used to insert rows into the dataset.
Provides the ability to directly access the SQL object encapsulating the SelectSQL statement.
Specifies the parameters to use for any parameterized queries.
Set ForcedRefresh to True to force the dataset to refresh its data every time it posts a record. When
ForcedRefresh is False (the default), the data is only refreshed when you call the Refresh method, or
when the dataset needs to fetch the value of a default or internally calculated field.
Description
procedure ExecSQL;
Executes the SQL statement that the SelectSQL property specifies when it is not a SELECT statement.
Call ExecSQL to execute the main query for this dataset when it is not a SELECT statement. If the
value of the SelectSQL property is not set, or if it is set to a SELECT statement, ExecSQL raises an
53
DELPHI
ParamByName
EIBError exception.
function ParamByName(Idx : String) : TIBXSQLVAR;
Returns a specified parameter of the SELECT query that fetches this dataset’s data.
Call ParamByName to retrieve the object that represents a parameter of the query that fetches this
dataset’s data. Use the TIBXSQLVar object this method returns to get or set the parameter value.
Prepare
Idx is the name of the parameter.
procedure Prepare;
UnPrepare
Call Prepare to prepare all queries in the dataset to be executed.
procedure UnPrepare;
Prepares all queries in the dataset to be executed.
Resets the state of a dataset’s internal queries.
Call UnPrepare to reset the state of a dataset’s internal queries.
54
DELPHI
Principali tag HTML
Elementi di base
Tag
<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.0//EN">
<HTML></HTML>
<TITLE></TITLE>
Significato
Note
tipo documento
va posto prima di <HTML>
documento HTML
titolo
all'inizio e alla fine del file
deve essere nella testata
informazioni descrittive (ad es. il
titolo)
contenuto della pagina
<HEAD></HEAD>
testata
<BODY></BODY>
corpo
Sfondi e colori
Tag
<BODY
<BODY
<BODY
<BODY
<BODY
<BODY
<BODY
BACKGROUND="URL">
BGPROPERTIES="FIXED">
BGCOLOR="#$$$$$$">
TEXT="#$$$$$$">
LINK="#$$$$$$">
VLINK="#$$$$$$">
ALINK="#$$$$$$">
Significato
immagine di sfondo
fissa senza scorrimento verticale
colore di sfondo
del testo
dei collegamenti
dei collegamenti visitati
del collegamento selezionato
Note
i colori possono essere specificati
come codici RGB oppure con
stringhe descrittive
Principali colori
Black = “#000000”
Maroon = “#800000”
Green = “#008000”
Navy = “#000080”
Silver = “#C0C0C0”
Red
Lime
Blue = “#0000FF”
Gray
= “#808080”
Purple = “#800080”
Olive = “#808000”
Teal = “#008080”
White = “#FFFFFF”
Fuchsia = “#FF00FF”
Yellow = “#FFFF00”
Aqua = “#00FFFF”
= “#FF0000”
= “#00FF00”
Caratteri speciali
Tag
&#?;
<
>
&
"
è
È
é
®
©
 
Significato
carattere speciale
<
>
&
"
è
È
é
marchio registrato TM
copyright
spazio da mantenere
Note
? indica il codice ISO 8859-1
analoghe rappresentazioni per le
altre vocali a, o, i, u
(in alternativa ®)
(in alternativa ©)
Struttura
Tag
Significato
<H?></H?>
titoli
<H? ALIGN= LEFT|CENTER|RIGHT>
</H?>
allineamento titolo
<DIV></DIV>
divisione di blocco
55
Note
sono definiti 6 livelli (dal più
grande H1 al più piccolo H6)
usato per porzioni di testo o
paragrafi
HTML
<DIV ALIGN=LEFT|RIGHT|
CENTER|JUSTIFY></DIV>
allinemento del blocco
<SPAN></SPAN>
divisione di blocco
<EM></EM>
<STRONG></STRONG>
<CITE></CITE>
<CODE></CODE>
evidenziato
molto evidenziato
citazione
codice
<ADDRESS></ADDRESS>
indirizzo dell'autore
<BIG></BIG>
<SMALL></SMALL>
font molto grande
font molto piccolo
come DIV ma solitamente usato
per brevi testi
in genere visualizzato in corsivo
in genere visualizzato in neretto
in genere visualizzato in corsivo
per listati di programmazione
posto solitamente alla fine (vi si
inserisce un riferimento
dell’autore)
Formattazione del testo
Tag
<B></B>
<I></I>
<U></U>
<S></S>
<STRIKE></STRIKE>
<SUB></SUB>
<SUP></SUP>
<TT></TT>
Significato
grassetto (bold)
corsivo (italic)
sottolineato (underline)
barrato (strikeout)
barrato (strikeout)
pedice
apice
font non scalabile
<PRE></PRE>
preformattato
<PRE WIDTH=?></PRE>
<CENTER></CENTER>
<FONT SIZE=?></FONT>
<FONT SIZE=+?></FONT>
<FONT SIZE=-?></FONT>
<BASEFONT SIZE=?>
<FONT COLOR="#$$$$$$"></FONT>
larghezza
centrato
grandezza del font
<FONT FACE="***"></FONT>
tipo font
<BLINK></BLINK>
<MARQUEE></MARQUEE>
lampeggiante
testo scorrevole
grandezza del font
grandezza font di base
colore del font
Note
alternativo a <S>
visualizzato a spaziatura fissa
visualizzato tale e quale;
mantiene cioè gli allineamenti
originali del testo
larghezza in caratteri
sia per testo che immagini
valori da 1 a 7
aumenta (+) o diminuisce (-) la
grandezza del font
da 1 a 7; valore di default 3
*** indica il nome del font (es.
arial, serif, ...)
supportato da Netscape
supportato da MS
Collegamenti ed immagini
Tag
<A HREF="URL"></A>
<A HREF="URL#***"></A>
<A HREF="#***"></A>
Significato
collegamento di base
link ad un’ancora
link ad un’ancora
<A HREF="URL" TARGET="***"></A>
collegamento indicando la
destinazione
Note
in un altro documento
in un altro file
nello stesso file
l’url indicato viene visualizzato
su una nuova finestra il cui nome
è definito con target
<A NAME="***"></A>
<A HREF="mailto:@"></A>
<IMG SRC="URL">
<IMG SRC="URL" ALIGN=TOP|BOTTOM
|MIDDLE|LEFT|RIGHT>
definizione di ancora nel file
indirizzo email
inserimento immagine
<IMG SRC="URL" ALT="***">
testo in alternativa
se l'immagine non viene
visualizzata
dimensioni immagine
in pixel
dimensioni immagine
in percentuale della larghezza e
altezza della pagina
bordo immagine
in pixel
<IMG SRC="URL"
WIDTH=? HEIGHT=?>
<IMG SRC="URL"
WIDTH=% HEIGHT=%>
<IMG SRC="URL" BORDER=?>
allineamento immagine
56
HTML
<IMG SRC="URL"
HSPACE=? VSPACE=?>
<IMG SRC="URL" ISMAP>
<IMG SRC="URL" USEMAP="URL">
<MAP NAME="***"></MAP>
<AREA SHAPE="DEFAULT|RECT|
CIRCLE|POLY" COORDS="x,y,z"
HREF="URL"|NOHREF>
spazio perimetrale immagine
in pixel
mappa navigabile
descrive una mappa
definizione della mappa
richiede uno script
descrizione della mappa
sezione mappa
nello stesso documento
Segni di paragrafo e separatori
Tag
Significato
<P></P>
paragrafo
<P ALIGN=LEFT|CENTER|RIGHT></P>
allineamento
<BR>
<HR>
<HR ALIGN=LEFT|
RIGHT|CENTER>
<HR SIZE=?>
interruzione riga
riga orizzontale
<HR WIDTH=?|”%”>
larghezza riga orizzontale
<HR NOSHADE>
piena
Note
spesso il comando di chiusura
viene omesso
Netscape supporta anche
ALIGN=JUSTIFY
singolo ritorno a capo
allineamento riga orizzontale
spessore riga orizzontale
in pixel
in pixel o come percentuale
rispetto alla larghezza della
pagina
senza l'effetto 3D
Liste
Tag
<UL><LI></UL>
<UL COMPACT></UL>
<UL TYPE=DISC|CIRCLE|SQUARE>
<LI TYPE=DISC|CIRCLE|SQUARE>
<OL><LI></OL>
<OL COMPACT></OL>
<OL TYPE=A|a|I|i|1>
<LI TYPE=A|a|I|i|1>
<OL VALUE=?>
<LI VALUE=?>
Significato
liste senza ordine
lista compatta
tipo di puntatore
tipo di puntatore
lista numerata
lista compatta
tipo di numero
tipo di numero
numero di partenza
numero di partenza
<DL><DT><DD></DL>
lista di definizioni
<DL COMPACT></DL>
lista compatta
Note
<LI> prima di ogni elemento
valido per tutta la lista
valido per questo e i successivi
<LI> prima di ogni elemento
valido per tutta la lista
valido per questo e i successivi
valido per tutta la lista
per questo e i successivi
<DT>=termine,
<DD>=definizione
Tabelle
Tag
<TABLE></TABLE>
<TABLE ALIGN=LEFT|
RIGHT|CENTER>
<TABLE BORDER>
</TABLE>
<TABLE BORDER=?>
</TABLE>
<TABLE CELLSPACING=?>
Significato
definizione tabella
Note
allineamento tabella
bordo
per visualizzare il bordo
spessore bordo
valore in pixel
spazio tra celle
<TABLE CELLPADDING=?>
spazio nella cella
<TABLE WIDTH=?>
larghezza tabella
<TABLE WIDTH=%>
larghezza %
<TABLE BGCOLOR="#$$$$$$">
colore sfondo
57
spazio tra il testo e il bordo della
cella
in pixel
in percentuale rispetto alla
pagina
HTML
</TABLE>
<TABLE BORDERCOLOR="#$$$$$$">
</TABLE>
<TABLE
BORDERCOLORDARK="#$$$$$$">
</TABLE>
<TABLE
BORDERCOLORLIGHT="#$$$$$$">
</TABLE>
<TR></TR>
<TR ALIGN=LEFT|RIGHT|
CENTER|MIDDLE|BOTTOM>
colore bordo
colore scuro
colore chiaro
riga
allineamento riga
deve essere all'interno di una
definizione di riga
<TD></TD>
colonna
<TD ALIGN=LEFT|RIGHT|CENTER
VALIGN=TOP|MIDDLE|BOTTOM>
<TD NOWRAP>
allineamento orizzontale e
verticale
<TD COLSPAN=?>
unione colonne
<TD ROWSPAN=?>
unione righe
<TD WIDTH=?>
larghezza colonna
<TD WIDTH="%">
larghezza colonna %
<TD BGCOLOR="#$$$$$$">
colore di sfondo della cella
<TH></TH>
titolo della colonna
<TH ALIGN=LEFT|RIGHT|
CENTER|MIDDLE|BOTTOM>
<TH NOWRAP>
<TH COLSPAN=?>
<TH ROWSPAN=?>
<TH WIDTH=?>
<TH WIDTH="%">
<TH BGCOLOR="#$$$$$$">
senza interruzione
? è il numero di colonne da
occupare
? è il numero di righe da
occupare
in pixel
valore in percentuale della
larghezza della tabella
come <TD> ma in neretto e
centrata
allineamento
senza interruzione
unione colonne
unione righe
larghezza
larghezza %
colore di sfondo della cella
<CAPTION></CAPTION>
legenda della tabella
<CAPTION ALIGN=TOP|BOTTOM|
LEFT|RIGHT>
allineamento legenda
visualizzata in testa alla tabella
(centrata sulla larghezza e fuori
dall’eventuale bordo)
posizione rispetto alla tabella
(sopra o sotto, sopra a sinistra,
sopra a destra)
Moduli
Tag
<FORM ACTION="URL"
METHOD=GET|POST>
</FORM>
<FORM ENCTYPE="multipart/formdata"></FORM>
<INPUT TYPE="TEXT|PASSWORD|
CHECKBOX|RADIO|FILE|BUTTON|
IMAGE|HIDDEN|SUBMIT|RESET">
<INPUT NAME="***">
<INPUT VALUE="***">
<INPUT MAXLENGTH=?>
<INPUT CHECKED>
<INPUT SIZE=?>
<SELECT></SELECT>
<SELECT NAME="***"></SELECT>
<SELECT SIZE=?></SELECT>
<SELECT MULTIPLE>
Significato
Note
definizione
upload di file
campo di immissione
nome del campo
valore di default
lunghezza massima
selezionato di default
misura
lista
nome campo
numero opzioni
in caratteri
checkbox e radio
in caratteri
selezione da un elenco di opzioni
selezione multipla
per selezionare più di un
elemento
58
HTML
elementi che possono essere
selezionati
<OPTION>
opzioni
<OPTION SELECTED>
opzione selezionata
<OPTION VALUE="***">
valore
<OPTGROUP LABEL="***">
</OPTGROUP>
<TEXTAREA ROWS=?
COLS=?></TEXTAREA>
<TEXTAREA
NAME="***"></TEXTAREA>
<TEXTAREA
WRAP=OFF|HARD|SOFT></TEXTAREA>
label visualizzata accanto
all’opzione
gruppo di opzioni
area di immissione testo
nome dell’area
a capo automatico in diversi
modi
Frame
Tag
<FRAMESET></FRAMESET>
<FRAMESET ROWS=,,,>
</FRAMESET>
<FRAMESET ROWS=*></FRAMESET>
<FRAMESET COLS=,,,></FRAMESET>
<FRAMESET COLS=*></FRAMESET>
<FRAMESET FRAMEBORDER="yes|no">
</FRAMESET>
<FRAME>
<FRAME SRC="URL">
<FRAME
NAME="***"|_blank|_self|_parent
|_top>
<FRAME MARGINWIDTH=?>
<FRAME MARGINHEIGHT=?>
<FRAME SCROLLING="YES|NO|AUTO">
<FRAME NORESIZE>
<NOFRAMES></NOFRAMES>
Significato
documento frame
altezza in righe
Note
al posto di <BODY>
altezza in righe
larghezza in colonne
larghezza in colonne
cornice
* misura relativa
pixel o percentuale
* misura relativa
definizione frame
visualizza documento
nome del frame
contenuto di ogni singolo quadro
larghezza margine
altezza margine
barra di scorrimento
misure non modificabili
contenuto in assenza di frame
margine destro o sinistro
margine alto o basso
59
pixel o percentuale
per i browser che non
supportano frame
HTML
ComPort
Use TComPort component to easily communicate with external devices on RS232 connection,
such as modems, bar code readers, PBX and so on. TCustomComPort introduces several
properties for detailed setting of serial port, numerous methods to write and read from port
and events for monitoring port. Write and read operations can be performed synchronously or
asynchronously.
Properties
Cport.Connected
Set Connected to True to open serial port. Set Connected to False close
connection to serial port. An application can check Connected to determine
whether or not a serial port is open. If Connected is True, serial port is open,
otherwise it is closed.
CPort.Buffer
Use Buffer property to set the size of input and output buffer of serial port.
CPort.BaudRate
BaudRate property represents the speed at which charchters are sent or received
via RS232 conection. Both sides of connection should have the same BaudRate. If
BaudRate has a value of brCustom, CustomBaudRate property is used to set baud
rate.
Methods: Lettura e scrittura
CPort.ReadStr(r,Count)
Call ReadStr function to read Count bytes into Str variable. The function does not
return until Count bytes are read or timeout elapses.
The return value is the number of bytes that are actually read.
CPort.WriteStr(s)
Call WriteStr function to write Str variable to output buffer. The function does not
return until whole string is written or timeout elapses.
The return value is the number of bytes that are actually written.
Cport.Close
Close method closes connection to serial port. If serial port is already closed,
Close method does nothing. When port is closed, application can't read or write to
it.
Cport.Open
Open method connects to a serial port and sets all port settings defined in
TCustomComPort properties. If a port is already opened, nothing happen
Eventi
OnRxchar
Write OnRxChar event handler to get information about recently arrived
charachters in input buffer. Count parameter is the number of bytes in input
buffer waiting to be read. OnRxChar event is usually used for reading charachters
from input buffer.
OnRxBuf
Write OnRxChar event handler to get data that had arrived in input buffer, but it
has already been read from it by other linked component such as
TComDataPacket or TCustomComTerminal. The application can not read the data
from input buffer, because it has already been read from it and placed in Buffer
parameter.
OnBreak
Write OnBreak event handler to take specific action when hardware detects a
break on input.
OnError
Write OnError event handler to take specific action when a line status error
occurs. Line status errors are ceFrame, ceOverrun, ceRxParity
OnAfterClose
Write OnAfterClose event handler to take specific action after serial port is
successfully closed using Close method or Connected property. If closing of serial
port fails, OnAfterClose event is not triggered.
OnAfterOpen
Write OnAfterOpen event handler to take specific action after serial port is
successfully opened using Open method or Connected property. If opening of
serial port fails, OnAfterOpen event is not triggered.
60
Sistemi
Componenti SOCKET
Properties
Description
Active
Property Active: Boolean;
Indicates whether the socket connection is open and available for communication with other
machines.
Before attempting to use or change the socket connection, read Active to determine whether the
connection is open and ready. For client sockets, setting Active opens or shuts down a socket
connection to another machine. For server sockets, setting Active opens or shuts down a listening
connection that makes the socket available for client requests.
At design time, set Active to True to make the socket open a connection when the application starts
running. At runtime, use the Open or Close method to open or close the connection.
Address
Property Address: string;
Address is a string of four numeric (byte) values in the standard Internet dot notation, such as
123.197.1.2
For client sockets, set Address to the IP address of the server to which the socket should connect.
When the connection is opened, the value of Address is bound to the connection.
If the socket specifies the Host property, the address for the connection is taken from the IP
address associated with Host, rather than the value of Address. Specifying the server system by
giving the IP address is faster, because the socket doesn’t need to search for the IP address
associated with the host name before it can locate the server system.
A single system may support more than one IP address.
Note: Trying to change Address when the connection is open will raise an ESocketError
exception.
Host
Property Host: string;
Host is a string containing the domain name and service of a particular system, such as
http:\\www.google.it
For client sockets, set Host to the system with which the client socket should form a connection.
When the socket opens a connection, it looks up the IP address for the server socket using the
value of Host.
Some servers change the system or IP address that is associated with a particular host name. Using
a host name allows the client socket to find the abstract site represented by the host name, even
when it has moved to a new IP address.
If Host is set, it takes precedence over the Address property when looking up the address of the
server.
Note:
Port
Trying to change Host when the connection is open will raise an ESocketError exception.
Property Port: Integer;
Port numbers allow a single system, identified by the Host or Address property, to host multiple
connections simultaneously. Many values of Port are associated by convention with a particular
service such as ftp or http.
For server sockets, Port is the ID of the connection on which the server socket listens for client
requests. Server sockets generally set Port to a predefined value which clients can use to initiate
connections.
For client sockets, Port is the ID of the desired server connection. The value of Port is usually
associated with the service the client wishes to use on the server application.
Note:
Service
Trying to change Port when the connection is open will raise an ESocketError exception.
Property Service: string;
Use Service to identify the use of the connection. Windows provides a number of standard service
names such as ftp, http, finger, and time. Servers can specify additional services and their
associated ports in a SERVICES file. For more information, see the Microsoft documentation for
Windows sockets.
61
Sistemi
Certain port numbers are reserved for specific values of service. Thus, Service provides a more
meaningful way to specify the server Port to use for the socket connection. For server sockets,
using Service rather than Port ensures that the server will listen for TCP/IP requests on the
appropriate port.
Note:
Trying to change Service when the connection is open will raise an ESocketError exception.
Methods
Description
Close
Procedure Close;
Call Close to shut down the socket connection. Close sets the Active property to False.
For client sockets, Close terminates the connection to the server. For server sockets, Close shuts
down the connection so that the server socket is no longer listening for client requests.
Open
Procedure Open;
Call Open to initiate the socket connection. Open sets the Active property to True.
For client sockets, Open locates and connects to a server. For server sockets, Open opens the
socket connection in a listening mode, but does not complete the connection to a client socket.
TClientSocket
Add a TClientSocket object to a form or data module to turn an application into a TCP/IP client. TClientSocket specifies
a desired connection to a TCP/IP server, manages the connection when it is open, and terminates the connection when
the application is through.
Use Socket to
Determine the address and port of both the client and server sockets that are bound to the connection.
_Read or write information through the socket connection.
_Determine what server notifications the client will respond to.
_iObtain the Windows socket handle for making Windows socket API calls.
Events
Description
OnConnect
Property OnConnect: TSocketNotifyEvent;
Write an OnConnect event handler for a client socket to take specific action after the connection to
a server socket has been established. Depending on the service, this may be the point when the
socket should start reading or writing over the connection.
When a client socket opens a connection, the following events occur:
1 An OnLookup event occurs prior to an attempt to locate the server socket.
2 The Windows socket is set up, and initialized for event notification.
3 An OnConnecting event occurs after the server socket is located.
4 The connection request is accepted by the server and completed by the client socket.
5 An OnConnect event occurs after the connection is established.
OnConnecting
Property OnConnecting: TSocketNotifyEvent;
Write an OnConnecting event handler for a client socket to take specific action just before the
connection to a server socket is established. This is the first opportunity to obtain the actual port
and IP address of the server endpoint of the connection that is about to form.
When a client socket opens a connection, the following events occur:
1 An OnLookup event occurs prior to an attempt to locate the server socket.
2 The Windows socket is set up, and initialized for event notification.
3 An OnConnecting event occurs after the server socket is located.
4 The connection request is accepted by the server and completed by the client socket.
5 An OnConnect event occurs after the connection is established.
62
Sistemi
OnDisconnect
Property OnDisconnect: TSocketNotifyEvent;
Write an OnDisconnect event handler to take specific action when the connection to a server socket
is about to be terminated. OnDisconnect occurs after the value of the Active property is set to False,
but before the actual connection is closed.
OnError
Property OnError: TSocketErrorEvent;
Write an OnError event handler to respond to errors that arise with the socket connection. Set the
ErrorCode parameter to 0 if the OnError event handler successfully deals with the error condition, to
prevent an ESocketError from being raised.
OnLookup
Property OnLookup: TSocketNotifyEvent;
Write an OnLookup event handler for a client socket to take specific action just before attempting to
locate a server socket. This is the first opportunity to make Windows API calls that affect the client
properties of the socket, such as specifying a particular port number. Use the SocketHandle
property of the Socket parameter for Windows API calls.
When a client socket opens a connection, the following events occur:
1 An OnLookup event occurs prior to an attempt to locate the server socket.
2 The Windows socket is set up, and initialized for event notification.
3 An OnConnecting event occurs after the server socket is located.
4 The connection request is accepted by the server and completed by the client socket.
5 An OnConnect event occurs after the connection is established.
Note: Changing the Address, Host, Port, or Service properties of socket component in an
OnLookup event handler has no effect on the address or port used to locate a server socket. These
properties must be correct before the Open method is called.
OnWrite
Property OnWrite: TSocketNotifyEvent;
Write an OnWrite to write from the socket connection. If the socket is a blocking socket, use a
TwinSocketStream object to write to the connection. Otherwise, use the methods of the Socket
parameter to perform the actual writing.
OnRead
Property OnRead: TSocketNotifyEvent;
Write an OnRead event handler to read from the socket connection. If the socket is a blocking
socket, use a TWinSocketStream object to read from the connection. Otherwise, use the methods of
the Socket parameter to perform the actual reading.
Note: Non-blocking sockets do not always receive an OnRead event for the last bit of data passed
over the connection. When using a non-blocking socket, check for any unread data in the
OnDisconnect event to make sure that everything is handled.
63
Sistemi
TServerSocket
TServerSocket manages server socket connections for a TCP/IP server.
Unit: ScktComp
Add a TServerSocket object to a form or data module to turn an application into a TCP/IP server. TServerSocket
listens for requests for TCP/IP connections from other machines, and establishes connections when requests are
received.
Events
Description
OnClientConnect
property OnClientConnect: TSocketNotifyEvent;
Occurs when a client socket completes a connection accepted by the server socket.
Write an OnClientConnect event handler to take specific action when a client socket completes
the socket connection to the server socket. For example, the socket may start reading or
writing over the connection in an OnClientConnect event handler.
The order of server socket events leading up to OnClientConnect is as follows:
1 An OnListen event occurs just before the server socket is opened for listening.
2 The server socket receives client requests in a listening queue. The server socket accepts
one of those requests, and receives a Windows socket handle for the new socket connection.
3 The server socket generates an OnGetSocket event, passing in the Windows socket handle. If
a TserverClientWinSocket object for the server endpoint of the new connection is not created in
an OnGetSocket event handler, the server socket creates one. The TServerWinSocket object
continues to listen for other clients.
4 An OnAccept event occurs, using the new TServerClientWinSocket object.
5 If ServerType is stThreadBlocking and no thread is available in the cache, an OnGetThread
event occurs. If the OnGetThread event handler does not create a thread, the server socket
creates a TServerClientThread.
6 If ServerType is stThreadBlocking, an OnThreadStart event occurs as the thread begins
execution.
7 The client completes the connection to the TServerClientWinSocket object and an
OnClientConnect event occurs.
Note: If ServerType is stThreadBlocking, make sure that all code in an OnClientConnect
event handler is thread-safe. Use the GetClientThread method of the Sender parameter to
access thread-specific information.
Note: The OnClientConnect event handler for TServerSocket is also set when setting the
OnClientConnect event handler of the associated TServerWinSocket.
OnClientDisconnect
property OnClientDisconnect: TSocketNotifyEvent;
Occurs when one of the connections to a client socket is closed.
Write an OnClientDisconnect event handler to take specific action when the connection to a
client socket is ending. The termination of a client connection does not close the server socket.
The server socket remains open and listening for client requests on its listening connection.
The TServerClientWinSocket that describes the server endpoint of the client connection is freed
after OnClientDisconnect. If ServerType is stThreadBlocking, OnThreadEnd occurs after
OnClientDisconnect.
Note: If ServerType is stThreadBlocking, make sure that all code in an OnClientDisconnect
event handler is thread-safe. Use the GetClientThread method of the Sender parameter to
access thread-specific information.
Note: The OnClientDisconnect event handler for TServerSocket is also set when setting the
OnClientDisconnect event handler of the associated TServerWinSocket.
OnClientError
property OnClientError: TSocketErrorEvent;
Occurs when there is a failure in establishing, using, or terminating the socket connection to an
individual client socket.
64
Sistemi
Write an OnClientError event handler to respond to errors that arise with a connection to an
individual client. Set the ErrorCode parameter to 0 if the OnClientError event handler
successfully deals with the error condition to prevent an ESocketError from being raised.
Note: If ServerType is stThreadBlocking, make sure that all code in an OnClientError event
handler is thread-safe. Use the GetClientThread method of the Sender parameter to access
thread-specific information.
Note: The OnClientError event handler for TServerSocket is also set when setting the
OnClientError event handler of the associated TServerWinSocket.
OnClientRead
property OnClientRead: TSocketNotifyEvent;
Occurs when the server socket should read information from a client socket.
Write an OnClientWrite event handler to write to the socket connection. If the ServerType
property is stThreadBlocking, use a TWinSocketStream object to prevent problems that arise
while writing from causing the execution thread to hang indefinitely. Otherwise, use the
methods of the Socket parameter to perform the actual writing.
Note: If ServerType is stThreadBlocking, make sure that all code in an OnClientRead event
handler is thread-safe. Use the GetClientThread method of the Sender parameter to access
thread-specific information.
OnClientWrite
property OnClientWrite: TSocketNotifyEvent;
Occurs when the server socket should write information to a client socket.
Write an OnClientWrite event handler to write to the socket connection. If the ServerType
property is stThreadBlocking, use a TWinSocketStream object to prevent problems that arise
while writing from causing the execution thread to hang indefinitely. Otherwise, use the
methods of the Socket parameter to perform the actual writing.
Note: If ServerType is stThreadBlocking, make sure that all code in an OnClientWrite event
handler is thread-safe. Use the GetClientThread method of the Sender parameter to access
thread-specific information.
OnAccept
property OnAccept: TSocketNotifyEvent;
Occurs on server sockets just after the connection to a client socket is accepted.
Write an OnAccept event handler for a server socket to take specific action after the connection
to a client socket has been accepted. This is the first point when information is available about
the local port and IP address that will be used in the server endpoint of the connection. The
port number, and possibly the IP address, will differ from those of the listening socket.
Server sockets open a socket connection for listening to establish a queue to hold client
requests. After a request from the queue is accepted by the server socket, an OnAccept event
occurs. After the server socket accepts the connection, the client socket completes the
connection, and an OnConnect event occurs for the client socket.
OnListen
property OnListen: TSocketNotifyEvent;
Occurs just before a server socket is opened for listening.
Write an OnListen event handler for a server socket to take specific action just before the
socket is opened for listening. OnListen occurs after Address and Port have been bound to the
socket connection, but before it is opened. This is the last opportunity to make changes to the
socket endpoint before it is opened for listening. Use the SocketHandle property of the Socket
parameter for Windows API calls that change the socket.
Server sockets open a socket connection for listening to establish a queue to hold client
requests. The connection to a client socket is completed when a request from the queue is
accepted.
65
Sistemi
XML
Struttura documento XML
<?xml version=”1.0” encoding=”UTF-8”?>
<NomeTag>
<NomeTag2>Valore</NomeTag2>
</NomeTag>
Schema di validità documento XML
<!DOCTYPE NomeTag [
<!ELEMENT NomeTag (NomeTag2)>
<!ELEMENT NomeTag2 (#PCDATA)>
]>
Componente TXMLDocument
Proprieties
Description
AddChild(TagName:string)
Aggiunge un nuovo nodo figlio al documento
ChildNode(Index:Integer)
Raggiuge ogni nodo figlio all’interno del documento
ChildValue(TagName:string)
Specifica il nome del nodo
XML
Legge il documento XML
XML.Text
Vado a scrivere sul documento XML
Active(:Boolean)
Attivo l’oggetto
Method
Description
ChildNode(Index:Integer)
Raggiuge ogni nodo figlio all’interno del documento
ChildValue(TagName:string)
Specifica il nome del nodo
XML
Legge il documento XML
XML.Text
Vado a scrivere sul documento XML
Active(:Boolean)
Attivo l’oggetto
66
Sistemi
Componente IOPort
TIOPort provides properties for reading and writing bytes, words and doublewords from/to IO
ports
Properties
Description
Port[Index: Dword]: Byte;
Use this property for reading or writing a byte from/to IO port. Index specifies the
IO port used for reading or writing.
Simbologia LAN
B ridge
ATM Sw itch
R outer
Firewall
P hone
Printer
W orkstation
Laptop
H ub
67
Sistemi