Discussion:
php5 pdo session guillemet
(trop ancien pour répondre)
nathieb
2007-04-26 22:37:03 UTC
Permalink
Bonjour,

Je suis en train de développer un formulaire. je récupère les données
avec un $_SESSION['var']=$_POST['var']
juste avant une insertion en base via PDO pour Oracle.

quand dans le formulaire on saisi "le'beau" les guillemets font planter
l'insertion. le ' est intéprété d'ou le pb , qu'elle fonction dois -je
utiliser ? la fonction "quote" de PDO est inefficace.
c'est classique mais bon, je rame ...

cordialement olivier
Thiebaut olivier
2007-04-27 09:03:45 UTC
Permalink
Post by nathieb
Bonjour,
Je suis en train de développer un formulaire. je récupère les données
avec un $_SESSION['var']=$_POST['var']
juste avant une insertion en base via PDO pour Oracle.
quand dans le formulaire on saisi "le'beau" les guillemets font planter
l'insertion. le ' est intéprété d'ou le pb , qu'elle fonction dois -je
utiliser ? la fonction "quote" de PDO est inefficace.
c'est classique mais bon, je rame ...
cordialement olivier
bonjour,

Je me réponds tout seul comme un grand, enfin presque.
L'erreur du débutant, ;).

Juste avant l'insertion je dois retraité les valeurs :
foreach($contact as $key => $item){
$contact[$key]=stripslashes(str_replace("'","''",trim($item)));
}

par exemple et après insert()...

Par contre, quelqu'un aurait une solution Exception propre
pour remonter les problèmes d'inset qui auraient fonctionner de façon
incorrects?

Des exemples, ou comment pratiquez vous ?

Cordialement olivier ;-)
Francois Girault
2007-04-30 23:17:46 UTC
Permalink
Post by nathieb
Bonjour,
Je suis en train de développer un formulaire. je récupère les données
avec un $_SESSION['var']=$_POST['var']
juste avant une insertion en base via PDO pour Oracle.
quand dans le formulaire on saisi "le'beau" les guillemets font planter
l'insertion. le ' est intéprété d'ou le pb , qu'elle fonction dois -je
utiliser ? la fonction "quote" de PDO est inefficace.
c'est classique mais bon, je rame ...
Comment construisez-vous la requête ?

Logiquement, l'utilisation de "prepared statements" évite ce genre
d'écueil :

$st = $pdo->prepare("INSERT INTO foo (bar, plop) VALUES ( :bar, :plop))";
$st->execute(array("bar" => 42, "plop" => "pl'ip"));
--
FG
Continuer la lecture sur narkive:
Loading...