Ik heb een database met de naam: testdb
Tevens ziet phpmyadmin de mappen waar testdb staat ook als database.
Nu heb ik in de testdb een tabel aangemaakt upload.
Deze bevat de velden:
id = int = auto increment en primary key
naam uploader varchar 200 Not Null
bedrijfsnaam varchar 200 Not Null
omschrijving text Null
naam bestand varchar 200 Not Null
Nu wil ik in mijn upload php de ingevoerde gegevens door de gebruiker in de tabel upload plaatsen. Kan dit op de volgende manier?
<?php
$query="INSERT INTO upload (naam uploader, bedrijfsnaam, omschrijving, naam bestand) VALUES ('.$_POST['name'].', .$_POST['bedrijf'].', .$_POST['field']., .$_POST['naambestand'].)";
mysql_query($query) or die (mysql_error());
?>
Nu gebruik ik die .$_POST['----']. in het mailvorm en dan worden de gegevens in de mail wel goed verzonden, moet ik die dan ook zo gebruiken in de $query?
En hoe weet de $query in welke database hij de tabel kan vinden.
Ik had inmiddels de mysql connect gevonden, maar gebruik dit
mysql_connect('*****','******','*****');
mysql_select_db('testdb') or die (mysql_error());
------------------------------
De query is:
<?php
$query="INSERT INTO upload (naam uploader, bedrijfsnaam, omschrijving, naam bestand) VALUES ('.$_POST['name'].', '.$_POST['bedrijf'].', '.$_POST['field'].','.$_FILES['bestand']['name'].',)";
mysql_query($query) or die (mysql_error());
?>
maar ik begrijp dat deze niet goed is, anders zou ik onderstaande foutmelding wel niet krijgen.
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in *****************\upload.php on line 133
- Deze tekens niet gebruiken: `
- Let op MySQL-injecties! Gebruik addslashes() voor strings. Voor cijfers intval() en voor decimale getallen floatval()
Sorry, maar dit zegt me eigenlijk niets. Heb hier een tutorial gezien
waar ongeveer het volgende staat
<?php
$query="INSERT INTO upload (naam uploader, bedrijfsnaam, omschrijving, naam bestand) VALUES ('".$naam_gebruiker."', '".$naam_gebruiker."', '".$naam_gebruiker."', '".$naam_gebruiker."')"
mysql_query($query) or die (mysql_error());
?>
Dan krijg ik een parse error bij de mysql_query lijn.
Thomas - 08/06/2006 15:13 (laatste wijziging 08/06/2006 15:13)
Moderator
Het lijkt me sterk dat je in de naam van een kolom van een database-tabel een spatie mag gebruiken? Misschien (als dit al kan, wat me sterk lijkt) moet je backticks om `naam uploader` zetten?
@ Henri : Je gooit er weer de grootste onzin uit die er bestaat, waarom zou je in godsnaam geen ` mogen gebruiken? Het is alleen maar netjes en handig. Die reactie van jou slaat echt nergens op.
@ RudyL : Gebruik Codetags! [ code] code hier [ /code] , wat is die fout van die query?
@ FangorN : Ja, je kan wel spaties gebruik in phpmyadmin, dus zal ook wel in een SQL. Het staat niet netjes vind ik.
@martijn over Henri
Pardon? Henri heeft deels gelijk. De backsticks om de veldnamen mag je wel gebruiken maar ivm incompitabiliteit van de scripts word dit afgeraden. Handig en netjes zijn meningen
Bedankt voor de oplettendheid. Het weghalen van de , loste het probleem direct op. Over hoe het er staat is inderdaad niet overzichtelijk, zal dit nog gaan veranderen.