Préparer des requetes Mysql / PDO dynamiquement avec str_pad ou array_pad

Requête PDO préparée avec marqueurs

En PHP pour faire une requête sql en utilisant PDO, il y a la possibilité de les préparer en utilisant des marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la reqûete sera exécutée. Voilà un exemple très simple d’utilisation dans lequel il n’y a qu’une valeur.

Si par contre on souhaite faire la même requete avec un WHERE id IN (?, ?, ...)
Le nombre de marqueurs (?) va dépendre du nombre de valeur à rechercher. Il sera donc intéressant et plus simple de générer ces marqueurs automatiquement avec soit un str_pad ou un array_pad. Voici les deux exemples de code qui permettent d’avoir autant de marqueurs que de valeurs à substituer lors du prepare.

 

Dans cet exemple, on doit faire un 2* le nombre de valeurs car on insère un ? et une ,
Cf la note dans la doc de php.net :

Le paramètre pad_string peut être tronqué si le nombre de caractères de complétion n’est pas multiple de la taille de pad_string.

 

 

Exemple concret sur un SELECT :

Exemple avec un INSERT INTO


Commenter

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *