J'utilise Zend Framework
dans mon application. Et je veux savoir comment obtenir des valeurs du champ ENUM dans le tableau MySQL
.
Par exemple: j'ai le champ permissions
(ENUM
('delete_admin', 'edit_admin')). Comment obtenir array ('delete_admin', 'edit_admin') de la meilleure manière?
Merci d'avance.Zend Mysql obtenir des valeurs ENUM
Répondre
Voici comment je l'ai fait:
dans votre modèle mis ce
function getInfoTabella()
{
$data = $this->info(self::METADATA);
return $data;
}
puis utilisez ceci:
$model = new $model_name();
$description = $model->getInfoTabella();
$enum = $description[$FIELD_NAME]['DATA_TYPE'];
$inizia_enum = strpos($enum, "'");
$finisce_enum = strrpos($enum, "'");
if ($inizia_enum === false || $finisce_enum === false)
throw new Exception('errore enum database');
$finisce_enum -= $inizia_enum ;
$enum = substr($enum, $inizia_enum, $finisce_enum+1);
str_replace("'", '', $enum);
$enum = explode("," , $enum);
return $enum;
Ajouter dans votre classe Zend_Table:
$adapter = $this->getDefaultAdapter();
$sql = 'SHOW COLUMNS FROM `table` LIKE `field`';
$result = $adapter->fetchRow($sql);
preg_match('=\((.*)\)=is' $options);
str_replace("'", '' $options[1]);
$options = explode(',', $options[1]);
Je l'ai fait de la manière suivante:
$metadata = $this->info(self::METADATA);
$typesString = $metadata['enum_column_name']['DATA_TYPE'];
preg_match("=\((.*)\)=is", $typesString, $parts);
$enumColumnValues = explode("','", trim($parts[1], "'"));
Voici comment vous pouvez obtenir un prêt d'exploser chaîne de MySQL:
SELECT REPLACE(TRIM(TRAILING ')' FROM (TRIM(LEADING 'enum(' FROM c.COLUMN_TYPE))), '\'', '')
FROM information_schema.`COLUMNS` c
WHERE c.COLUMN_NAME = 'enum_col'
Vous avez juste besoin de faire un explode(',' $result)
sur elle pour obtenir un tableau avec vos valeurs ENUM. N'oubliez pas que vous avez besoin d'un accès en lecture à information_schema-database pour ce faire. Ajoutez une méthode à votre classe étendue Zend_Db_Table_Abstract
public function getEnumValues($field) {
$metadata = $this->info(self::METADATA);
preg_match_all('/\'(?<item>.+?)\'/', $metadata[$field]['DATA_TYPE'], $matches);
return $matches['item'];
}
Une méthode pour votre mappeur de modèle d'application. En supposant que your_field_name est le nom de la colonne de la base de données dont vous avez besoin pour répertorier les valeurs ENUM de.
La méthode renvoie un tableau avec les valeurs ENUM de la colonne your_field_name.
public function getAvailableEnumTypes() {
$this->your_model_name = new Application_Model_DbTable_YourModelName(); // DB table
$info = $this->your_model_name->info();
$dat = explode("','", preg_replace("/(enum\('|'\))/", "", $info['metadata']['your_field_name']['DATA_TYPE']));
return $dat;
}
- 1. Obtenir des valeurs d'un ENUM
- 2. affichage des valeurs mysql enum dans php
- 3. Liste des valeurs Enum dans dropdown php mysql
- 4. Comment obtenir des valeurs enum sans connaître ses clés?
- 5. Zend_Db Enum Valeurs
- 6. Zend: Comment insérer des valeurs NULL dans MySQL
- 7. MySQL ENUM en Java
- 8. Obtenez des valeurs Cookie avec Zend Framework
- 9. Comment obtenir toutes les valeurs Enum dans XMLBeans?
- 10. Enum et leurs valeurs
- 11. Comment obtenir toutes les valeurs enum dans Java?
- 12. MySQL: Comment obtenir des enregistrements ont des valeurs non nulles?
- 13. MySQL ajouter des champs à un Enum
- 14. NHibernate MySQL Enum
- 15. Comment obtenir les valeurs d'un ENUM dans un SelectList
- 16. MySQL enum avec hibernate
- 17. nom enum avec plusieurs valeurs
- 18. comptage des valeurs mysql
- 19. Comment donner des valeurs enum qui ont des espaces
- 20. en utilisant des valeurs Enum comme des entiers
- 21. ENUM valeurs associées au c
- 22. tableau Java de valeurs ENUM
- 23. Comment remplir une liste déroulante avec des valeurs enum?
- 24. Zend DB: valeurs nulles
- 25. Renvoie le nombre de valeurs enum. (Taille de Enum typedef)
- 26. représentation de chaîne de valeurs ENUM
- 27. QDox pour obtenir des noms de valeur enum
- 28. MySQL colonne ENUM de la colonne anothertable
- 29. doxygen: comment documenter des valeurs \ enum hors-ligne?
- 30. Liaison des valeurs enum à RadioButton en Java