sesam_query

sesam_query -- Exécute une requête SESAM

Description

string sesam_query ( string query [, bool scrollable])

sesam_query( ) retourne un identifiant de résultat SESAM en cas de succès , ou FALSE en cas d 'erreur .

L' identifiant de résultat est utilisé par d 'autres fonctions sesam pour lire les valeurs .

sesam_query( ) envoie une requête à la base active . Elle peut exécuter aussi bien une requête immédiate ( DELETE , UPDATE ou INSERT ) , ou une requête de selection . Si une requête immédiate est exécutée , aucun curseur n' est alloué , et il ne sera pas possible d'utiliser les fonctions sesam_fetch_row( ) ou sesam_fetch_result( ) . Pour les requêtes de selection , un descripteur de résultat et un curseur ( scrollable ou séquentiel , suivant le paramètre optionnel scrollable passé ) sear alloué . Si scrollable est omis , le curseur sera séquentiel .

Lorsque vous utilisez les curseurs à défilement , le curseur peut être positionné librement dans le résultat . Pour chaque requête à défilement , il existe des valeurs globales de types de défilement ( initialisée à : SESAM_SEEK_NEXT ) et la position peut être fixée une seule fois par sesam_seek_row( ) ou bien à chaque appel , avec la fonction sesam_fetch_row( ) .

Pour les requêtes immédiates , le nombre de lignes affectées est sauvé , et est accessible par la fonction sesam_affected_rows( ) .

Voir aussi : sesam_fetch_row( ) et sesam_fetch_result( ) .

Exemple 1 . Liste toutes les lignes de table " phone " sous forme de table HTML

 
?php

 
if

 
(

 
!sesam_connect("phonedb"

 
,

 
"demo"

 
,

 
"toto")

 
)

 
die("cannot

 
connect")

 
;

 
$result

 
=

 
sesam_query("select

 
*

 
from

 
phone")

 
;

 
if

 
(!$result

 
)

 
{

 
$err

 
=

 
sesam_diagnostic()

 
;

 
die($err["errmsg"])

 
;

 
}

 
echo

 
"

 
TABLE

 
BORDER

 
\n"

 
;

 
/

 
/

 
Ajoute

 
l'entête

 
de

 
titre

 
comme

 
nom

 
de

 
colonne

 
if

 
($cols

 
=

 
sesam_field_array($result)

 
)

 
{

 
echo

 
"

 
TR

 
TH

 
COLSPAN=".$cols["count"]

 
.

 
"

 
Result

 
:

 
/

 
TH

 
/

 
TR

 
\n"

 
;

 
echo

 
"

 
TR

 
\n"

 
;

 
for

 
($col

 
=

 
0

 
;

 
$col

 
$cols["count"]

 
;

 
++$col

 
)

 
{

 
$colattr

 
=

 
$cols[$col]

 
;

 
/

 
*

 
étend

 
les

 
entêtes

 
de

 
la

 
table

 
au

 
dessus

 
des

 
champs

 
multiples

 
*

 
/

 
if

 
($colattr["count"

 
]

 
1

 
)

 
{

 
echo

 
"

 
TH

 
COLSPAN=".$colattr["count"]

 
.

 
"

 
".$colattr["name"]

 
.

 
"(1.

 
.".$colattr["count"]

 
."

 
)

 
/

 
TH

 
\n"

 
;

 
$col

 
+=

 
$colattr["count"

 
]

 
-

 
1

 
;

 
    }

 
    else

 
echo

 
"

 
TH

 
"

 
.

 
$colattr["name"

 
]

 
.

 
"

 
/

 
TH

 
\n"

 
;

 
  }

 
echo

 
"

 
/

 
TR

 
\n"

 
;

 
}

 
do

 
{

 
/

 
/

 
Lit

 
les

 
résultats

 
par

 
bloc

 
de

 
100

 
$ok

 
=

 
sesam_fetch_result($result,100)

 
;

 
for

 
($row=0

 
;

 
$row

 
$ok["rows"]

 
;

 
++$row

 
)

 
{

 
echo

 
"

 
TR

 
\n"

 
;

 
for

 
($col

 
=

 
0

 
;

 
$col

 
$ok["cols"]

 
;

 
++$col

 
)

 
{

 
if

 
(isset($ok[$col][$row])

 
)

 
echo

 
"

 
TD

 
"

 
.

 
$ok[$col][$row

 
]

 
.

 
"

 
/

 
TD

 
\n"

 
;

 
      else

 
echo

 
"

 
TD

 
-empty

 
-

 
/

 
TD

 
\n"

 
;

 
    }

 
echo

 
"

 
/

 
TR

 
\n"

 
;

 
  }

 
}

 
while

 
($ok["truncated"])

 
;

 
/

 
/

 
tant

 
qu'il

 
a

 
y

 
encore

 
des

 
données

 
echo

 
"

 
/

 
TABLE

 
\n"

 
;

 
/

 
/

 
libère

 
les

 
ressources

 
sesam_free_result($result)

 
;

 
?