On 14/05/12 20:10, Clément wrote:
> Il suffirait de mettre cette ligne dans le try/catch pour en savoir un
> peu plus.
oui, j'ai appris ça ))
je n'ai pas mis de try catch, mais :
$ret=$db->exec($sql);
if($ret){
// pas d'erreur procéder normalement
}else{
// une erreur :
$errorInfo=$db->errorInfo();
}
j'ai aussi augmenté mes varchar(30) à varchar(256) pour ne plus avoir
d'erreur...
il me reste, pour essayer try / catch à mettre :
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
sinon je ne "catch" rien...
car l'erreur SQL se produit à la ligne :
$ret=$db->exec($sql);
mais n'est vue par php qu'au :
while($row=$ret->fetch()){ ... }
qui suiT.
en fait l'erreur donnée par psql utilisé en ligne de commande est très
claire :
ERROR: value too long for type character varying(30)
je dois être plus généreux sur la longueur de mes varchar, par ex
varchar(1024) pour une URL n'est pas trop : je viens d'essayer avec une
URL correspondant à un point Google Maps, ça donne une longi-ueur de 329...