Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/01/2008, à 00:53

NiRaDo

[PHP/MySQL] Tester si un champ est auto incrémenté ?

Bonjour.

Je coince sur un problème depuis quelques minutes. Je crées une fonction qui me retourne un schéma en tableau associatif d'une table d'une base de donnée au sein d'une classe (mais ce dernier point n'est pas important). Dedans j'y indique le type de chacun des champs, et toute information qui peut s'avérer interessante...

Voici le code :

	public function schemaTable($nom_table)
	{
		// recherche de la liste des attributs de la table
		$liste_attr = mysql_list_fields($this->nom_base, $nom_table, $this->connexion);
		
		if(!$liste_attr) throw new Exception("Probleme d'analyse de $nom_table");
		
		// recherche des attributs et stockage dans le tableau suivant
		for($i = 0; $i < mysql_num_fields($liste_attr); $i++)
		{
			$nom = mysql_field_name($liste_attr, $i);
			$schema[$nom]['longueur'] = mysql_field_len($liste_attr, $i);
			$schema[$nom]['type'] = mysql_field_type($liste_attr, $i);
			$schema[$nom]['cle_primaire'] = substr_count(mysql_field_flags($liste_attr, $i), "primary_key");
			$schema[$nom]['not_null'] = substr_count(mysql_field_flags($liste_attr, $i), "not_null");
			$schema[$nom]['defaut'] = substr_count(mysql_field_flags($liste_attr, $i), "default");
			$schema[$nom]['unique'] = substr_count(mysql_field_flags($liste_attr, $i), "unique");
			$schema[$nom]['auto_increment'] = substr_count(mysql_field_flags($liste_attr, $i), "AUTO_INCREMENT");
		}
		return $schema;
	}

Le ...

$schema[$nom]['auto_increment'] = substr_count(mysql_field_flags($liste_attr, $i),

... me semblait suffisant, pourtant le tableau m'indique à  chaque fois [auto_increment]=>0 même si le champ est en auto_increment.

Quelqu'un aurait une idée ?

Merci d'avance.

Dernière modification par NiRaDo (Le 17/01/2008, à 00:53)

Hors ligne

#2 Le 17/01/2008, à 18:37

NiRaDo

Re : [PHP/MySQL] Tester si un champ est auto incrémenté ?

up!

Hors ligne

#3 Le 17/01/2008, à 18:44

freebird

Re : [PHP/MySQL] Tester si un champ est auto incrémenté ?

Si j'en crois la doc les drapeaux sont retournés en minuscule donc auto_increment au lieu de AUTO_INCREMENT. As-tu essayé ?

Pour info voici la doc que j'ai consultée : http://cyberzoide.developpez.com/php4/mysql/mysql.pdf pages 83-85.

Dernière modification par freebird (Le 17/01/2008, à 18:45)

Hors ligne

#4 Le 23/01/2008, à 19:42

NiRaDo

Re : [PHP/MySQL] Tester si un champ est auto incrémenté ?

Salut. Oui j'ai essayé :s Mais ça ne change rien sad

Hors ligne

#5 Le 09/02/2008, à 12:18

NiRaDo

Re : [PHP/MySQL] Tester si un champ est auto incrémenté ?

up!

Hors ligne