PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP/Mysql] Insert


ich.com.sie.net
2006-09-12, 13:42:41
Ich hab keine Ahnung, warum er es nicht ausführt:

$result = "INSERT INTO fl_ebay (`archid`,`seller`,`start_bid`,`start_date`,`end_date`,`report`,`quick_buy`,`mai ling_charge`)
VALUES (
'".$_POST['archid']."',
'".$userdata['user_id']."',
'".$_POST['start_bid']."',
'".time()."',
'".(time() + $_POST['select'])."',
'".htmlentities($_POST['textarea']."',
'".$_POST['quick_buy']."',
'".$_POST['mailing_charge']."')";

$query = mysql_query($result) OR die(mysql_error());

Als Fehlermeldung gibt er mir "Parse error: parse error, unexpected ';' in C:\Inetpub\dfls\content_modules\fl_bbay.php on line 327 (in dem Fall Zeile 10)" zurück. Was aber total lächerlich ist. Ich versteh die Welt nicht mehr, geh erstmal eine rauchen....

Gast
2006-09-12, 14:36:59
Strings konkateniert man mit . nicht mit ,

Gast
2006-09-12, 14:38:06
Ok, war quatsch, aber ich glaube nicht dass PHP Linebreaks in Strings unterstützt, mach da mal ". am Ende und ." am Anfang der Zeile hin.

ethrandil
2006-09-12, 14:47:35
$result = "INSERT INTO fl_ebay (`archid`,`seller`,`start_bid`,`start_date`,`end_date`,`report`,`quick_buy`,`mai ling_charge`)
VALUES ('"
.$_POST['archid']."','"
.$userdata['user_id']."','"
.$_POST['start_bid']."','"
.time()."','"
.(time() + $_POST['select'])."','"
.htmlentities($_POST['textarea']."','"
.$_POST['quick_buy']."','"
.$_POST['mailing_charge']."')";

Also etwa so...

- eth

ich.com.sie.net
2006-09-12, 15:42:15
$result = "INSERT INTO fl_ebay (`archid`,`active_bid`,`top_bid`,`buyer`,`bid`,`seller`,`start_bid`,`start_date` ,`end_date`,`report`,`view`,`quick_buy`,`mailing_charge`)
VALUES ('".$_POST['archid']."','0','0','','0','".$userdata['username']."','".$_POST['start_bid']."','".time()."','".(time() + $_POST['select'])."','".htmlentities($_POST['textarea']."','0','0','".$_POST['mailing_charge']."')");
$query = mysql_query($result) OR die(mysql_error());


Auch wenn es theoretisch so nicht stimmt, funktioniert es.

PS: Nicht wundern hab den Befehl erweitert

HellHorse
2006-09-12, 17:03:34
SQL Injection ahoi.

darph
2006-09-12, 17:16:47
Wenn die Tabelle irgendwo einen Integer erwartet, darphst du natürlich nicht '123' einfügen, denn das ist ja ein String. Die IDs werden wohl Integer sein? Dann mach da die einfachen Anführungszeichen weg.

Und schau dir mal mysql_real_escape_string() sowie sprintf() in der PHP Doku an. ;(

mithrandir
2006-09-12, 22:19:24
Check doch einfach die Klammern. Da fehlt eine runde, oder?