mysql_field_flags() problems

From: Date: Thu, 01 Aug 2002 15:17:24 +0000
Subject: mysql_field_flags() problems
Groups: php.general 
Request: Send a blank email to php-general+get-110680@lists.php.net to get a copy of this message
This is a part of my code for my data interfacer class which takes an SQL RESULT RESOURCE and gets the field from it. Problem is, i can't get the primary key out nor the auto-increment flag out. Before, the same script (or so, it was modified but not that part) was working fine. I tried it on several tables and on several database servers and i still can't get the PRIMARY or AUTO_INCREMENT flag out. In fact the only flag that is returned is: NOT_NULL. (When i ECHO the mysql_field_flags(...) i get only notnull). Furthermore, i can't seem to get the data, that i will check more in detail, my most important part IS the primary and auto-increment flags. Thanks in advance if you can find something. Here is the complete code that you need: //Execute the query twice to get the fields and a result for the values $result = $this->mysql_server->send_result_sql($this->query_builder->generate_select() , 1); $fieldlist = $this->mysql_server->send_result_sql($this->query_builder->generate_select() , 1); //get the first row to insert values in the interface $data = mysql_fetch_array($result); //Used for the field flag fetching $curfield = -1; $fieldcount = mysql_num_fields($fieldlist); //Loop the data field definition and add the field in the end for($curfield = 0; $curfield < $fieldcount; $curfield++){ //Get the current field $datadef = mysql_fetch_field($fieldlist, $curfield); //Reset the data $primary_key = 0; $auto_increment = 0; //Get all the other params from the field definition $fieldname = $datadef->name; $sourcetable = $datadef->table; $datatype = constant("MYSQL_NDT_" . strtoupper($datadef->type)); $fieldvalue = $data[$datadef->name]; $datasize = $datadef->max_length; //Get the field flags and explode them immediatly $fieldflags = explode(" ", mysql_field_flags($fieldlist, $curfield)); //Check all the field flags foreach($fieldflags as $key => $value){ if($value == "primary_key"){ $primary_key = 1; }elseif($value == "auto_increment"){ $auto_increment = 1; } } //Add the field to the data_interface $newint->add_field($fieldname, $fieldvalue, $datatype, $datasize, $primary, $autoinc, $sourcetable); }

« previous php.general (#110680) next »