Mailinglisten-Archive |
Hallo Liste, ich versuche gerade meine Klasse mysql um eine Funktion zu erweitern. Leider bekomme ich es nicht hin die Feldtypen aus der MySQL Tabelle richtig auszulesen. In meiner Tabelle habe ich folgende Spalten: Spalte 1: `id` int( 11 ) NOT NULL auto_increment PRIMARY KEY Spalte 2: `befehl` text NOT NULL Spalte 3: `mailadresse` varchar( 250 ) NOT NULL default '' Spalte 4: `timestamp` timestamp( 14 ) NOT NULL Folgender MySQL Befehl sollte am Ende rauskommen: CREATE TABLE `testdb`.`psTest` (`id` int( 11 ) NOT NULL auto_increment, `befehl` text NOT NULL, `mail_senden` int( 3 ) NOT NULL default '0', `timestamp` timestamp( 14 ) NOT NULL, PRIMARY KEY ( `id` ) ) TYPE = MYISAM; Wie folgt habe ich versucht meine Spalten auszulesen: $fields = mysql_list_fields(trim($von_db), trim($old_tabname), $this->Link_ID); $columns = mysql_num_fields($fields); for ($i = 0; $i < $columns; $i++) { $feldname = mysql_field_name($fields, $i); $feldtyp = mysql_field_type($fields, $i); $feldlaenge = mysql_field_len($fields, $i); $string_feldflags = mysql_fieldflags($fields, $i); $feldflags = explode(" ", strtoupper($string_feldflags)); $flags = trim($feldflags[0]); $sql_befehl .= "'".$feldname."' ".$feldtyp."(".$feldlaenge.") ".$string_feldflags." default '', "; } Ausgabe von echo $sql_befehl: CREATE TABLE 'testdb'.'psTest2' ( 'id' int(11) not_null primary_key auto_increment default '', 'befehl' blob(65535) not_null blob default '', 'mailadresse' string(250) not_null default '', 'timestamp' timestamp(14) not_null unsigned zerofill timestamp default '', Leider habe ich das Problem das mein Textfeld in der Spalte 2 als BLOB Feld erkannt wird und nicht als Textfeld. Gibt es eine möglichkeit dieses besser zu machen und die Richtigen Werte zu bekommen? Mit freundlichen Grüßen und besten Dank für Eure Hilfe Daniel Bladeck
php::bar PHP Wiki - Listenarchive