Maintenant il ne me reste plus qu'à faire un alter table sur les colonnes de varchar(30)...
Clément
Le 14/05/2012 08:47, Une Bévue a écrit :
puis-je obtenir l'erreur depuis $ret ?
L'erreur "Fatal error: Call to a member function fetch() on a non-object in /Users/yt/Sites/landp_public/landp.php on line 492" signifie que $ret n'est pas un objet PDO et donc que potentiellement $ret=$db->query($sql); n'a pas réussi car, comme l'indique la doc ( http://fr.php.net/manual/fr/pdo.query.php ), si query() fait une erreur, $ret = false. Il suffirait de mettre cette ligne dans le try/catch pour en savoir un peu plus.
Le 14/05/2012 08:47, Une Bévue a écrit :
puis-je obtenir l'erreur depuis $ret ?
L'erreur "Fatal error: Call to a member function fetch() on a non-object
in /Users/yt/Sites/landp_public/landp.php on line 492"
signifie que $ret n'est pas un objet PDO et donc que potentiellement
$ret=$db->query($sql); n'a pas réussi car, comme l'indique la doc (
http://fr.php.net/manual/fr/pdo.query.php ), si query() fait une erreur,
$ret = false.
Il suffirait de mettre cette ligne dans le try/catch pour en savoir un
peu plus.
L'erreur "Fatal error: Call to a member function fetch() on a non-object in /Users/yt/Sites/landp_public/landp.php on line 492" signifie que $ret n'est pas un objet PDO et donc que potentiellement $ret=$db->query($sql); n'a pas réussi car, comme l'indique la doc ( http://fr.php.net/manual/fr/pdo.query.php ), si query() fait une erreur, $ret = false. Il suffirait de mettre cette ligne dans le try/catch pour en savoir un peu plus.
Une Bévue
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...
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...
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...
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...
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...