Mysqlsel

From Base de connaissances eggdrops & TCL
Revision as of 10:46, 16 December 2012 by CrazyCat (talk | contribs)

Jump to: navigation, search

mysqlsel permet d'exécuter une requête SELECT dans une base de données.

Alias

::mysql::sel

Syntaxe

mysqlsel ''handle sql-statement ?-list|-flatlist?''

Paramètres

  • handle : l'handle (identifiant de connexion) obtenu après avoir effectué un mysqlconnect
  • sql-statement : la requête à exécuter

Options

  • -list : le résultat de la requête est envoyé dans une liste dont chaque élément est une ligne du résultat
  • -flatlist : le résultat de la requête est concaténé dans une seule liste plate, très pratique à utiliser dans une boucle foreach

Si la requête est un SELECT et que ni l'option -list ni l'option -flatlist n'est spécifiée, la commande retourne le nombre de lignes retournées comme résultat de la requête. Les lignes peuvent être obtenues par mysqlfetch et/ou par mysqlmap.

Particularités

  • Si la requête n'est pas un SELECT, mysqlsel retourne -1 ou une liste vide si l'option -list ou -flatlist est indiquée.
  • chaque fois que cette commande est utilisée, elle efface les résultats des précédentes requêtes (le recordset).

Exemples d'utilisation

::mysqlsel $db "SELECT ID, NAME FROM FRIENDS" -list
{1 Joe} {2 Phil} {3 John}
::mysqlsel $db "SELECT ID, NAME FROM FRIENDS" -flatlist
{1 Joe 2 Phil 3 John}

Notez que ces deux exemples sont bien plus rapides que:

::mysqlsel $db "SELECT ID, NAME FROM FRIENDS"
::mysqlmap $db {id name} {lappend result $id $name}
set $result
{1 Joe 2 Phil 3 John}

Voir aussi

mysqlconnect, mysqluse, mysqlclose, mysqlfetch, mysqlresult, mysqlseek, mysqlnext