Ruby fait tout et facilement (je trouve), donc voici un exemple assez compact de code ruby illustrant l’utilisation de mysql.
Ce billet comporte du code incluant la gestion d’erreur, obligatoire dans certains cas (requêtage http, sql, etc ..).
Vous trouverez une structure du type :
begin something to do / faire quelque chose rescue something to do in case of failure in the begin block / faire quelque chose en cas de plantage dans le bloc begin ensure something to do in every case after the ending of the begin or the rescue block / s'assurer de faire qlq ch après le bloc begin ou le bloc rescue end
Vous pouvez toujours vous référer à la doc suivante pour plus de détails et d’options sur le formalisme begin/rescue/ensure =>
http://ruby.bastardsbook.com/chapters/exception-handling/
librairie à inclure :
require 'mysql'
le bloc begin, qui contient le code de connexion à la bdd, les différentes query à effectuer (select, insert, update, delete) :
begin # connect to the MySQL server dbh = Mysql.real_connect("localhost", "user", "pass", "bdd_name")
un select, limitant les résultats à 100, récupérant les champs field1 et field2 des enregistrements de la table « table », où le champ field3 = 1 :
res = dbh.query("SELECT field1, field2 FROM table WHERE field3 = '1' LIMIT 100") # max 100
on fetch les résultants en affichant les colonnes contenant les champs field1 et field2 :
while row = res.fetch_row do printf "%s, %s\n", row[0], row[1]
pour chacune des lignes, on update le champ field4 à 1 :
update = dbh.prepare "UPDATE table SET field4 = ? WHERE field1 = ? AND field2 = ?" update.execute 1, row[0], row[1] end
le bloc rescue, qui s’exécute s’il y a plantage dans le bloc begin :
rescue Mysql::Error => e puts "Error code: #{e.errno}" puts "Error message: #{e.error}" puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
le bloc ensure, où nous nous assurons de déconnecter du serveur sql :
ensure # disconnect from server dbh.close if dbh end
et voilà les basic !