Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-07-2010 12:34:10

yamatoshi
Nouveau membre
Date d'inscription: 15-07-2010
Messages: 6

[Zend_db][1.10] Problème INSERT champ type text trop long

Bonjour,

Je viens de monter une application zend de gestion de news. Je rencontre depuis quelques jours un problème au niveau de l'insertion de caractère long dans un champ de type texte. Voici la procédure que j'utilise.


1. Je récupère dans mon controlleur article, le contenu d'un champ news (textarea) à travers $news = addslashes($_POST['news']);

2.  je passe ma variable dans ma fonction insertion
$addNews = $model->insertNews($news);

3. Dans mon modèle j'effectue la requête suivante :


Code:

public FUNCTION insertNews($news){
                
$registry = Zend_Registry::getInstance();
$db = $registry->get('db');
        
        
$insertSQL = $db->prepare("INSERT INTO articles (news) VALUES('$news')");
$insertSQL->execute();
 
}



Pour préciser, mon champ news est de type TEXT.

Le souci c'est que lorsque je saisi dans mon textarea un text d'une centaine de caractère. CA MARCHE TRES BIEN. Mon texte s'insère bien dans ma base. Mais dès que je saisi un texte de plus d'une centaine de caractères  comme le bloc ci-dessous


Le second paramètre de la méthode factory doit être un tableau associatif décrivant les paramètres de l'adaptateur à utiliser. Cet argument est optionnel, si un objet de type Zend_Config est utilisé en premier paramètre, alors il est supposé contenir les paramètres, et le second paramètre de factoryest alors ignoré.
Le second paramètre de la méthode factory doit être un tableau associatif décrivant les paramètres de l'adaptateur à utiliser. Cet argument est optionnel, si un objet de type Zend_Config est utilisé en premier paramètre, alors il est supposé contenir les paramètres, et le second paramètre de factory est alors ignoré.
Le second paramètre de la méthode factory doit être un tableau associatif décrivant les paramètres de



CA ne MARCHE PLUS.


J'obtiens systématiquement l'erreur suivante :

http://pics.imagup.com/ano1/1279084281.jpg

Voici comment je crée ma connexion dans mon bootstarp index.php


Code:

$config = new Zend_Config_Ini('config/config.ini', 'production');
$db = Zend_Db::factory($config->database->adapter,array
(
'host'  => $config->database->host, 
'username'  => $config->database->params->username,
'password'  => $config->database->params->password,
'dbname'  => $config->database->params->dbname,
));

Zend_Db_Table::setDefaultAdapter($db);    
$registry = Zend_Registry::getInstance(); 
$registry->set('db', $db);
[/b]

Dans mon fichier config.ini  j'ai ceci

[b]
database.adapter = PDO_MYSQL
database.params.host = localhost
database.params.username = root
database.params.password =
database.params.dbname = zend


J'utilise wamp pour mes test avec phpmyadmin et  mysql 5.1.36.

Dernière modification par yamatoshi (15-07-2010 15:58:25)

Hors ligne

 

#2 15-07-2010 14:22:44

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_db][1.10] Problème INSERT champ type text trop long

Hello,

Il faut "binder" ta variable $news et pas l'écrire dans ta requête, de mémoire :

Code:

$insertSQL = $db->prepare("INSERT INTO articles (news) VALUES('?')");
$insertSQL->execute(array($news));

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 15-07-2010 15:56:32

yamatoshi
Nouveau membre
Date d'inscription: 15-07-2010
Messages: 6

Re: [Zend_db][1.10] Problème INSERT champ type text trop long

Bonjour mikaelkael

Merci pour ta réponse mais cela n'a pas solutionner mon problème. Lorsque je saisi une phrase d'une centaine de caractère ça marche mais dès que je double le nombre de caractère ça plante toujours.  Pourtant un insert du même nombre de caractère directement dans phpMyadmin ça marche nickel ???

Je n'y comprend plus rien ?

Dernière modification par yamatoshi (15-07-2010 16:03:25)

Hors ligne

 

#4 15-07-2010 18:31:37

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_db][1.10] Problème INSERT champ type text trop long

Je me suis loupé c'est :

Code:

$insertSQL = $db->prepare("INSERT INTO articles (news) VALUES(?)");
$insertSQL->execute(array($news));

(sans les apostrophes)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#5 16-07-2010 10:08:52

yamatoshi
Nouveau membre
Date d'inscription: 15-07-2010
Messages: 6

Re: [Zend_db][1.10] Problème INSERT champ type text trop long

Re Mikael,

Oui j'avais corriger les apostrophes mais cela n'a rien changé. C'est allucinent j'arrive à rien insérer de plus de 200 caractères. C'est très embêtes pour une saisie d'articles de news et le pire c'est que j'ai aucune explication, tout me semble correcte dans mon code !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages