Hat Jemand einen PHP-Plan ?

G

Guest

Guest
Hallo,

bekomme nach abssenden eines Formulars folgende Meldung:

QUOTE Unknown column 'mobil' in 'field list'


Nur, dass Spalte "mobil" in der DB existiert und auch in der PHP-Funktion zum Eintragen in die DB als Spalte und Wert - Jemand eine Idee, wo ich einen Denkfehler haben kann ?

Danke & Gruß Dirk
 
Ok, moment:

CODE }
return $Array;
}

germanChars($_POST);

mysql_query("INSERT INTO `users`(
`datum`,
`id`,
`anrede`,
`titel`,
`vorname`,
`nachname`,
`firma`,
`strasse`,
`hausnummer`,
`plz`,
`ort`,
`land`,
`sprache`,
`telefon`,
`telefax`,
`mobil`,
`email`,
`www`,
`status`,
`passwort`,
`makler`,
`kompetenz`,
`firmentext`,
`firmenlogo`,
`apfoto`,
`agb`

) VALUES (

'$datum',
'$id',
'".$_POST['anrede']."',
'".$_POST['titel']."',
'".$_POST['vorname']."',
'".$_POST['nachname']."',
'".$_POST['firma']."',
'".$_POST['strasse']."',
'".$_POST['hausnummer']."',
'".$_POST['plz']."',
'".$_POST['ort']."',
'".$_POST['land']."',
'".$_POST['sprache']."',
'".$_POST['telefon']."',
'".$_POST['telefax']."',
'".$_POST['mobil']."',
'".$_POST['email']."',
'".$_POST['www']."',
'".$_POST['status']."',
'".$_POST['passwort']."',
'".$_POST['makler']."',
'".$_POST['kompetenz']."',
'".$_POST['firmentext']."',
'".$_POST['firmenlogo']."',
'".$_POST['apfoto']."',
'".$_POST['agb']."'
)")

or die(mysql_error());

}
}
?>


Wie gesagt, in der DB ist - mobil- vorhanden und auch immer gleich geschrieben .
Danke & Gruß Dirk
 
Vielleicht hier noch mal die DB -eventuell hab ich da einen Denkfehler drinn ?

CODE


CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`passwort` varchar(50) collate latin1_general_ci NOT NULL,
`titel` varchar(50) collate latin1_general_ci NOT NULL,
`firma` varchar(50) collate latin1_general_ci NOT NULL,
`anrede` enum('Herr','Frau','Firma') collate latin1_general_ci NOT NULL,
`vorname` varchar(50) collate latin1_general_ci NOT NULL,
`nachname` varchar(50) collate latin1_general_ci NOT NULL,
`datum` datetime default '0000-00-00 00:00:00',
`email` varchar(50) collate latin1_general_ci NOT NULL,
`plz` varchar(10) collate latin1_general_ci NOT NULL,
`ort` varchar(50) collate latin1_general_ci NOT NULL,
`strasse` varchar(50) collate latin1_general_ci NOT NULL,
`hausnummer` varchar(10) collate latin1_general_ci NOT NULL,
`telefon` varchar(50) collate latin1_general_ci NOT NULL,
`telefax` varchar(50) collate latin1_general_ci NOT NULL,
`mobil` varchar(50) collate latin1_general_ci NOT NULL,
`land` varchar(50) collate latin1_general_ci NOT NULL,
`sprache` varchar(50) collate latin1_general_ci NOT NULL,
`www` varchar(50) collate latin1_general_ci NOT NULL,
`status` enum('privat','gewerbe') collate latin1_general_ci NOT NULL,
`makler` char(1) collate latin1_general_ci NOT NULL,
`kompetenz` text collate latin1_general_ci NOT NULL,
`firmentext` text collate latin1_general_ci NOT NULL,
`firmenlogo` mediumblob,
`apfoto` mediumblob,
`agb` char(1) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=37 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=37&#59;



 
anscheinend gibt es das feld "mobil" in deiner mysql tabelle nicht...
wink.gif
 
Das ist das, was mir die Meldung sagt -extra dazu hab ich ja die "user" Tabelle hier mal gepostet und ich hab - mobil - ja in der DB stehen ???

 
versuche es mal mit einem anderen begriff...

Gewisse wörter darfst du in php nicht verwenden...

...wobei ich denke, dass mobil davon nicht betroffen sein sollte...
 
QUOTE Unknown column 'mobilphone' in 'field list'


Ich fang an zu weihnen
sad.gif

Nachtrag:
Ich habs jetzt auch nochmal mit - phon - ausprobiert.
Nix, das gleiche Ergebnis, nur halt mit *phon*
sad.gif


Gruß Dirk
 
Habs jetzt nochmals mit einer kompletten neuen Tabelle "users" in der DB ausprobiert - genau das gleiche:
QUOTE Unknown column 'phon' in 'field list'

So was kann doch gar nicht sein ?

Gruß Dirk
 
Beim Erstellen der Tabelle geht offenbar eine Spalte verloren, Du musst mal suchen, warum.

Überprüf mal:

mysql deine_db -e 'show create table users'
 
vll greifst du auf ne falsche db zu? setz das show create table mal in dein php script und schau ob das feld da auch dabei ist. ich glaube nicht dass mysql lügt
wink.gif


@sd reservierte wörter darfst du benutzen, sofern mit ` gekennzeichnet.
`group`wäre somit erlaubt
 
@profo
Sorry, aber wo setze ich das wie ein ?

@Sven K
Kann nicht sein, ich hab auf diesem Webspace unter dieser Url nur die eine DB "immobilie". wo DB-Name, Passwort, localhost korrekt ist - sollte somit außgeschlossen sein.

Hab jetzt malprobiert, in die Datei, die in die DB schreiben soll folgendes einzugeben:

QUOTE <?php
error_reporting(E_ALL);
ini_set('display_errors', true);

require 'mysql.connect.php';
$query="SHOW COLUMNS FROM TABLE LIKE 'users'";
$result=mysql_query($query,$db) or die(mysql_error());
while($row=mysql_fetch_assoc($result, MYSQL_ASSOC)) {
echo '"', join('", "', $row), "\"<br />\n";
}
?>


Bekomme dann folgende Meldung:

QUOTE You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE LIKE 'users'' at line 1


Leider kann ich damit jetzt nix anfangen - bin wohl überfordert ?
 
Führe mal den Sql-Befehl nicht direkt aus, sondern weise ihn erst einer (neuen) Variablen zu.

Danach echo $neueVariable (nutze PHP fast nicht, wird so etwa gehen).

Erst danach ausführen.

Poste mal das, was da ausgegeben wird.

Mir ist nicht klar, ob das gegen Sql-Injektionen gesichert ist. Ansonsten könnten Sonderzeichen in den Feldern davor den Code sprengen, damit würden im Values - Teil Dinge als Spalten interpretiert, die es dort nicht gibt.

Sprich: Die Fehlermeldung würde von unten (Values ...), nicht von oben (Insert ...) stammen.
 
@japsa, Syntaxfehler bei Deiner Abfrage. Nimm einfach:

QUOTE
$query="SHOW COLUMNS FROM 'users'";



Und wenn Du Lust hast kannst Du auch nehmen:


QUOTE
$query="SHOW CREATE TABLE 'users'";



 
Ich hab Euch mal meinen kompletten PHP-Code hier hochgeladen - da ich leider nicht so fitt in PHP bin, kann ich momentan mit Euren Ausführungen nicht viel anfangen
sad.gif


http://www.immobilie.es/users2.txt

Vielleicht hat ja einer von Euch da den kompletten Durchblick ??

Danke & Gruß Dirk
 
CODE $query="SELECT * from users WHERE email='".$_POST['email']."' ";

Auauauauaua... Umbedingt Escapen! Weiter bin ich gar nicht gegangen
biggrin.gif
 
QUOTE (NC @ Di 1.04.2008, 18:13) Auauauauaua... Umbedingt Escapen! Weiter bin ich gar nicht gegangen
biggrin.gif


ich hab es gedacht :)
 
Ok, danke - da muß ich mich allerdings erstmal einlesen
smile.gif


Gruß Dirk
 
und

CODE $office = "$USER_pn";


ist btw auch bullshit.

$office = $USER_pn; quotes sind für strings da!
 
Zurück
Oben