Aller au contenu


PostgreSQL: récupérer le last insert ID en une itération

Il existe un truc pas mal avec PostgreSQL, c’est le fait de pouvoir récupérer directement via un requête INSERT, l’id de la ligne insérée, en une seule intération, via l’extension RETURNING.

Exemple, en admettant une structure de table: id (sequence)/username/address

INSERT INTO users (username, address) VALUES ('me', 'home') RETURNING id;

Du coup, ça permet donc de faire des choses comme suit, avec par exemple Zend_DB :

$id = $db->fetchOne( "INSERT INTO users (username, address) VALUES (?, ?) RETURNING id", array ( 'me', 'home' ) );

Sympa, non ? Ok c’est spécifique PostgreSQL, mais si votre RDBMS ne doit pas changer…

Ah, et c’est aussi possible de récupérer le même genre d’info avec une requête DELETE, pour connaître toutes les rows qui ont été supprimées !

$ids = $db->fetchAll( 'DELETE FROM users WHERE username = ? RETURNING *', array( 'me' ) );

Posté dans développement, Web. Tags , , .

Objective-C: Shuffle d’un tableau

Simple et efficace, pour trier un NSMutableArray de manière random:

// NSMutableArray *myArray;
 
int randomSort(id obj1, id obj2, void *context) {
    return (arc4random()%3 - 1);
}
 
- (void)randomize {
    [myArray sortUsingFunction:randomSort context:nil];
}

Notez également que vous pouvez utiliser sortUsingSelector si vous avez déclaré votre méthode de sort à la manière Objective-C et non C comme ci-dessus.

Posté dans développement, iPhone. Tags , , , .

Les liens du vendredi!

En attendant l’arrivée du week-end, quelques liens intéressants glanés durant la semaine:

PHP

– Fabien Potencier: Pourquoi PHP n’est pas un bon langage de templates (EDIT: il a ensuite publié un follow-up suite aux 70+ commentaires reçus sur l’article original)
– Federico Cargnelutti propose une idée de database replication adapter pour Zend Framework pour gérer les connexions à vos DB dans le cas de réplications single-master ou multi-master
– Petite série de 7 articles d’introduction au unit testing, et surtout à PHPUnit
– Arrivée de l’extension Solr en 0.9.0 pour PHP
Joobsbox, un Job Board opensource développé avec Zend Framework, toujours intéressant de voir comment les autres s’en servent

Android

– Nouvelle API de gestion des gestures, dans la version 1.6 d’Android

Et pour le fun: La Bande Pas Dessinée, le remède à votre productivité :)

Posté dans développement, Web.

WordPress « Missed Schedule »

Si vous avez essayé d’utiliser la fonction de scheduling de post dans WordPress 2.8, peut-être vous êtes vous aussi heurté au seul message d’erreur de WordPress vous signalant « missed schedule », et du coup, pas de post publié.
Après avoir fouillé leur forum, trouvé moulte utilisateurs à la recherche d’un correctif éventuel (apparemment cela fait déjà plusieurs versions que ce « bug » subsisterait), passé en revue plusieurs hacks en tout genre, je suis finalement tombé sur un message plutôt clair qui dit que le problème n’est pas du côté WordPress, mais bien du côté serveur.

Pour faire court, la solution à tenter, si vous êtes victime de ce « Missed schedule », est la suivante:
editez votre fichier wp-config.php, et ajoutez-y

define("ALTERNATE_WP_CRON", true);

Le commentaire original à ce sujet est fait par Otto32 sur le forum WordPress, pour ceux qui voudraient en lire plus sur le problème.

Posté dans développement, Web.

www.ludovicandre.com: ma carte de visite

ludovicandrecom

Il est tout beau, tout chaud, sorti de presse hier! J’ai enfin terminé la création www.ludovicandre.com, mon site « carte de visite », histoire d’avoir un domaine dédié pour y présenter mon CV, et diverses infos à propos de ma carrière. In english cette fois, et avec un design plutôt sobre et clean, à hauteur de mes compétences artistiques, parce que non, je ne suis pas graphiste :)  Certaines petites améliorations sont déjà en cours de route, ainsi qu’une version mobile, mais autant que cette version ne traine plus dans les cartons pendant ce temps!

Si vous avez des commentaires ou remarques, feel free!

Posté dans Actu, Divers.