Pdo, créer une table avec une requête préparée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pdo, créer une table avec une requête préparée

Re: Pdo, créer une table avec une requête préparée

par Castor Gaspard » 14 nov. 2010, 00:02

Merci Stealth,

Oui, je me suis emmêlé les pinceaux en recopiant mon code pour le rendre intelligible.

Mais ta réponse m'intéresse. Je vais chercher pour le "fun".

Bien à toi,

Gasaprd

Re: Pdo, créer une table avec une requête préparée

par stealth35 » 13 nov. 2010, 21:21

mais c'est pas exec mais preparer, apres je suis d'accord avec ryle sur le fait que d'utiliser une requete préparée pour c'est un peu du luxe, mais si c'est tout a fait possible avec CREATE

Re: Pdo, créer une table avec une requête préparée

par Castor Gaspard » 13 nov. 2010, 19:48

Bonsoir,

Merci, Ryle, pour ton explication. J'y vois plus clair désormais... J'ai toujours tendance à vouloir améliorer la bougie. :mrgreen:

Cordialement,

Gaspard

Re: Pdo, créer une table avec une requête préparée

par Ryle » 13 nov. 2010, 19:39

Pour être exact, il faut privilégier les requêtes préparées pour des questions de performances et d'optimisation. En effet, l'intérêt de la requête préparer est de pouvoir exécuter plusieurs fois une requête dont seuls les paramètres changent.

Le contrôle qui évite les injections sql n'est qu'un "plus" offert par ce mode de fonctionnement (mode que tu peux tout à fait reproduire en utilisant mysql_real_escape_string(), ou avec quote() si tu utilises pdo).

Donc à moins de devoir créer à la suite un grand nombre de tables identiques (mais je connais plus d'un dba qui hurlerait à cette idée ;)), je ne suis personnellement pas convaincu de l'intérêt d'une requête préparée dans ce cas :)

Pdo, créer une table avec une requête préparée

par Castor Gaspard » 13 nov. 2010, 18:12

Bonjour,

Si j'ai lu (et compris) la documentation de Php, il faut privilégier les requêtes préparées pour éviter les injections Sql.

Je sais préparer et afficher une requête, depuis quelque temps.

En revanche, je me demande comment préparer une requête pour créer une table... A part passer directement le nom de la variable dans un execute sous la forme...
$table = 'matable';
$dbh->exec ("CREATE TABLE ".$table." (name CHAR(40), category CHAR(40))");
Or, j'aimerai pouvoir écrire...
$sth = $dbh->exec ("CREATE TABLE ? (name CHAR(40), category CHAR(40))");
$sth->execute($table);
N'est-ce pas possible ou la question de la sécurité est-elle ici moyennement importante, puisque mon l'accès à mon script sera protégé ? :D

Merci pour votre aide.

Bien à vous, :mrgreen:

Gaspard