Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler SQL-Befehl
Fehler
SQL-Befehl:
INSERT INTO `vms_interface`
VALUES (
'forced-sponsor', 0, 0, 'passwort', 0, 0.000000, 0, 0.0000, 0, 0.0000, 0.0000, 0.000000, 0, 0, 0.000000, 0, 0, 0
MySQL meldet:
#1136 - Column count doesn't match value count at row 1
wer kann mir helfen
SebbyPHM
21.02.2007, 11:49
da gehst du einfach oben auf "einfügen" und gibst bei "name" oder wie das heißt "forced-sponsor" ein - fertig
Nun, bei phpmyadmin - interface - den Datensatz per Hand eingeben orientieren kannst Dich dabei an den anderen Interfaces die Du schon da drin hast
dragon11
21.02.2007, 14:44
geht nicht - gibts nicht :P
in deie Datenbank gehen,
Tabelle vms_interface aufrufen
auf anzeigen klicken
auf einfügen klicken
im Feld sponsor forced-sponsor eingeben und auf ok klicken
damit ist der Datensatzt dann da undman kann in im Admin weiter bearbeiten
ah is ja doch hier ^^
@tino , siehe antwort im klamm forum
darkrulez
08.03.2007, 02:51
Original von tino23j
Fehler
SQL-Befehl:
INSERT INTO `vms_interface`
VALUES (
'forced-sponsor', 0, 0, 'passwort', 0, 0.000000, 0, 0.0000, 0, 0.0000, 0.0000, 0.000000, 0, 0, 0.000000, 0, 0, 0
MySQL meldet:
#1136 - Column count doesn't match value count at row 1
wer kann mir helfen
auch wenn der letzte post schon etwas älter ist, achtet doch mal darauf das der insert
korrekt abgeschlossen ist. das dieser insert nit funzt, liegt daran das am ende also
, 0.000000, 0, 0, 0);fehlt.
so funktioniert es:
INSERT INTO `vms_interface`
VALUES (
'forced-sponsor', 0, 0, 'passwort', 0, 0.000000, 0, 0.0000, 0, 0.0000, 0.0000, 0.000000, 0, 0, 0.000000, 0, 0, 0);
sind meistens kleine flüchtigkeits fehler die schonmal passieren.
SebbyPHM
08.03.2007, 18:00
Jain. Bei manchen ist die Spalten-Anzahl unterschhiedlich. Weshalb manchmal zu wenig Spalten vorhanden sind. Deshalb geht man dort lieber so vor - Und zumal ist es auch einfacher, wenn man schon lang auf ist und sich nicht mehr so ganz konzentrieren kann ;-)
Original von SebbyPHM
Und zumal ist es auch einfacher, wenn man schon lang auf ist und sich nicht mehr so ganz konzentrieren kann ;-)
:D Sorry für OT, aber er hat ja sooooooooo recht!!!
Du solltest dir generell angewöhnen, alles was in die DB geschrieben wird mit "addslashes" und "intval" zu entschärfen.....ich habe schon Portale zerbröseln sehen, weil ich mich anmelden wollte.
Zusätzlich sollten nicht nur die Werte, sondern auch die Felder in einer Query angegeben werden, ansonsten mußt du beim Script-Update, welches die betroffene Tabelle der DB erweitert, in jedem Script nachforschen, ob die Reihenfolge noch stimmt:
sql_query("INSERT INTO " . $prefix . "_tolle_tabelle ('daten_1', 'daten_2') VALUES ('" . addslashes($daten_1) . "', '" . addslashes($daten_2) . "')");
Diese Methode dürfte ein SQL-Injection schonal etwas erschweren ;)
hpshstein
06.05.2007, 16:28
http://www.klamm.de/forum/showpost.php?p=523839&postcount=7
ebenfalls sehr intressantes zu dem Thema
Ich würds eher so machen, denn addslashes verhindert das imho nur unzureichend - hab aber noch nicht geschafft eine hinzubekommen ums mal zu testen...
function db_query($query){
$args=func_get_args();
$vargs=array();
for($i=1;$i<func_num_args();$i++) {
if(get_magic_quotes_gpc()) {
$args[$i]=stripslashes($args[$i]);
}
$vargs[]=mysql_real_escape_string($args[$i]);
}
$query=vsprintf($query,$vargs);
$res=mysql_query($query);
return($res);
}
db_query('SELECT * FROM %s WHERE `%s`=%d','user','klammid',93995);
Ist mal wieder gaaaaaaanz toll :-P
Da baut jemand etwas eigenes, was nach "toll" und "sicher" aussieht, benutzt aber noch ein "$args[$i]=stripslashes($args[$i]);" um es dann ungeprüft in der DB abzufragen....da bleibe ich doch besser bei meinem "unsicheren" addslashes ;)
hpshstein
06.05.2007, 19:29
hm also ums kurz und bündig zu sagen: das beste ist wohl immer noch zu gucken, wie oft denn sql-befehle ala insert update usw in der fertigen abfrage drinn sind - isses mehr als einmal die abfrage vergessen und user schimpfen :D
Das muß ja auch nicht sein, es gibt aber durchaus Coder, die mit Verstand programmieren und sich mal ein wenig mit der Sache auseinandersetzen ....wie zb. dieser Schnipsel :
// bei <img> muss ein ALT Attribut spezifiert sein, hier versuchen die anzufuegen, falls es fehlt
$mxoutput = preg_replace('#(<img[^>]*)>#ie', 'stripslashes((preg_match("!\s*alt\s*=\s*[\'\"]!i", "\1"))?"\0":"\1 alt=\"\">")', $mxoutput);
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.