PDK et développement framework
Teki Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Teki
- Inscrit le : 17/02/2013
Reprise du message précédent
Citation :
public function __construct()
{
$this->querier = PersistenceContext::get_querier();
}
Suis je bon dans mon raisonnement ?
{
$this->querier = PersistenceContext::get_querier();
}
Suis je bon dans mon raisonnement ?
Oui mais là l'attribut querier n'est pas déclaré dans ta classe.
Essaye ce que je t'ai montré au dessus.
"Je suis un mec simple, y'a pas plus compliqué que moi"
forum6691 Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre forum6691
- Inscrit le : 04/10/2009
- Groupes :
Le nom du fichier php "RegateSetup.class.php" avait un espace en trop juste avant .php
Maintenant le script est bien appelé et jai un erreur sur l'ajout du colonne de la table dans laquelle je veux définir un champ FLOAT.
Code TEXT :
DoctrineException Unknown column type "float"
La ligne concernée est évidemment
Code TEXT :
'longitude' => array('type' => 'float', 'length' => 11, 'notnull' => 1, 'default' => 0),D'ou ma question, comment mappe t'on les types de mysql avec le type de variable déclaré en PHP dans le champs $fields ?
Ex: j'ai découvert le type boolean de PHPBOOSTse transformait en TINYINTdans mysql. Pourquoi pas en BOOLEAN ?
Cette besoin vient de la fonction create_table() du framework PHPBOOST et la doc ne dit rein là dessus ?
Merci de votre aide.
Édité par forum6691 Le 25/09/2013 à 06h43
Testeur V5
j1.seth Membre non connecté
-
Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
-
Chef de Projet
-
Equipe Développement
Essayes avec "decimal"
forum6691 Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre forum6691
- Inscrit le : 04/10/2009
- Groupes :
De façon générale, ou puis trouver la syntaxe du framework pour la gestion de la base de données ? Vous avez peut être utilisé un framework sous jacent qui est documenté sur internet ailleurs ?
Sans ça je vais ramer un max ?
Les types officiels pour mysql sont:
Code TEXT :
TINYINT [M] [UNSIGNED]
Occupe 1 octet. Ce type peut stocker des nombres entiers de -128 à 127 si il ne porte pas l'attribut UNSIGNED, dans le cas contraire il peut stocker des entiers de 0 à 255.
SMALLINT [M] [UNSIGNED]
Occupe 2 octets. Ce type de données peut stocker des nombres entiers de -32 768 à 32 767 si il ne porte pas l'attribut UNSIGNED, dans le cas contraire il peut stocker des entiers de 0 à 65 535.
MEDIUMINT [M] [UNSIGNED]
Occupe 3 octets. Ce type de données peut stocker des nombres entiers de -8 388 608 à 8 388 607 si il ne porte porte pas l'attribut UNSIGNED, dans le cas contraire il peut stocker des entiers de 0 à 16 777 215.
INT [M] [UNSIGNED]
Occupe 4 octets. Ce type de données peut stocker des nombres entiers de -2 147 483 648 à 2 147 483 647 si il ne porte pas l'attribut UNSIGNED, dans le cas contraire il peut stocker des entiers de 0 à 4 294 967 295.
INTEGER [M] [UNSIGNED]
Même chose que le type INT.
BIGINT [M] [UNSIGNED]
Occupe 8 octets. Ce type de données stocke les nombres entiers allant de -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 sans l'attribut UNSIGNED, et de 0 à 18 446 744 073 709 551 615 avec.
FLOAT (précision simple de 0 à 24 et précision double de 25 à 53) [UNSIGNED]
Occupe 4 octets si la précision est inférieure à 24 ou 8 au delà.
Stocke un nombre de type flottant.
FLOAT[(M,D)] [UNSIGNED]
Occupe 4 octets. M est le nombre de chiffres et D est le nombre de décimales.
Ce type de données permet de stocker des nombres flottants à précision simple. Va de -1.175494351E-38 à 3.402823466E+38. Si UNSIGNED est activé, les nombres négatifs sont retirés mais ne permettent pas d'avoir des nombres positifs plus grands.
DOUBLE PRECISION[(M,D)]
Occupe 8 octets. Même chose que le type DOUBLE
DOUBLE [(M,D)]
Occupe 8 octets. Stocke des nombres flottants à double précision de -1.7976931348623157E+308 à -2.2250738585072014E-308, 0, et de 2.2250738585072014E-308 à 1.7976931348623157E+308.
Si UNSIGNED est activé, les nombres négatifs sont retirés mais ne permettent pas d'avoir des nombres positifs plus grands.
REAL[(M,D)]
Occupe 8 octets. Même chose que le type DOUBLE
DECIMAL[(M[,D])]
Occupe M+2 octets si D > 0, M+1 octets si D = 0
Contient des nombres flottants stockés comme des chaînes de caractères.
NUMERIC [(M,D)]
Même chose que le type DECIMAL
DATE
Occupe 3 octets. Stocke une date au format 'AAAA-MM-JJ' allant de '1000-01-01' à '9999-12-31'
DATETIME
Occupe 8 octets. Stocke une date et une heure au format 'AAAA-MM-JJ HH:MM:SS' allant de '1000-01-01 00:00:00' à '9999-12-31 23:59:59'
TIMESTAMP [M]
Occupe 4 octets. Stocke une date sous forme numérique allant de '1970-01-01 00:00:00' à l'année 2037. L'affichage dépend des valeurs de M : AAAAMMJJHHMMSS, AAMMJJHHMMSS, AAAAMMJJ, ou AAMMJJ pour M égal respectivement à 14, 12, 8, et 6
TIME
Occupe 3 octets. Stocke l'heure au format 'HH:MM:SS', allant de '-838:59:59' à '838:59:59'
YEAR
Occupe 1 octet. Année à 2 ou 4 chiffres allant de 1901 à 2155 ( 4 chiffres) et de 1970-2069 (2 chiffres).
[NATIONAL] CHAR(M) [BINARY]
Occupe M octets, M allant jusqu'à 255
Chaîne de 255 caractères maximum remplie d'espaces à la fin. L'option BINARY est utilisée pour tenir compte de la casse.
BIT
Occupe 1 octet. Même chose que CHAR(1)
BOOL
Occupe 1 octet. Même chose que CHAR(1)
CHAR (M)
Occupe M octets. Stocke des caractères. Si vous stockez un caractère et que M vaut 255, la donnée prendra 255 octets. Autant donc employer ce ce type de données pour des mots de longueur identique.
VARCHAR (M) [BINARY]
Occupe L+1 octets (ou L représente la longueur de la chaîne).
Ce type de données stocke des chaînes de 255 caractères maximum. L'option BINARY permet de tenir compte de la casse.
TINYBLOB (L représente la longueur de la chaîne)
Occupe L+1 octets.
Stocke des chaînes de 255 caractères maximum. Ce champ est sensible à la casse.
TINYTEXT
Occupe L+1 octets.
Stocke des chaînes de 255 caractères maximum. Ce champ est insensible à la casse.
BLOB
Occupe L+1 octets.
Stocke des Chaînes de 65535 caractères maximum. Ce champ est sensible à la casse.
TEXT
Occupe L+2 octets.
Stocke des chaînes de 65535 caractères maximum. Ce champ est insensible à la casse.
MEDIUMBLOB
Occupe L+3 octets.
Stocke des chaînes de 16777215 caractères maximum.
MEDIUMTEXT
Occupe L+3 octets.
Chaîne de 16 777 215 caractères maximum. Ce champ est insensible à la casse.
LONGBLOB
Occupe L+4 octets.
Stocke des chaînes de 4 294 967 295 caractères maximum. Ce champ est sensible à la casse.
LONGTEXT
Occupe L+4 octets.
Stocke des chaînes de 4 294 967 295 caractères maximum.
ENUM('valeur_possible1','valeur_possible2','valeur_possible3',...)
Occupe 1 ou 2 octets (la place occupée est fonction du nombre de solutions possibles : 65 535 valeurs maximum.
SET('valeur_possible1','valeur_possible2',...)
Occupe 1, 2, 3, 4 ou 8 octets, selon de nombre de solutions possibles (de 0 à 64 valeurs maximum)
Pourquoi ne puis je utiliser ceux là ? Le float est bien prévu normalement
HELP HELP
Édité par forum6691 Le 25/09/2013 à 21h06
Testeur V5
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$_typesMap = array( 'array' => 'ArrayType', 'object' => 'ObjectType', 'boolean' => 'BooleanType', 'integer' => 'IntegerType', 'int' => 'IntegerType', 'smallint' => 'SmallIntType', 'bigint' => 'BigIntType', 'string' => 'StringType', 'text' => 'TextType', 'datetime' => 'DateTimeType', 'date' => 'DateType', 'time' => 'TimeType', 'decimal' => 'DecimalType', 'double' => 'DoubleType' );
Nous utilisons Doctrine (tu trouveras la liste montrée ci dessus, dans le fichier /kernel/framework/io/db/dbms/Doctrine/DBAL/Types/Type.php) et il manque effectivement float (que tu peux remplacer par decimal entre temps). Je vais voir pour l'ajouter
forum6691 Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre forum6691
- Inscrit le : 04/10/2009
- Groupes :
Ok pour doctrine, avec cette info je vais pouvoir chercher sur le net et poser moins de questions
Testeur V5
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie