login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Plaatsen gegevens in een van de databases

Offline RudyL - 08/06/2006 14:08
Avatar van RudyLNieuw lid 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.

Alvast bedankt.

10 antwoorden

Gesponsorde links
Offline Martijn1989 - 08/06/2006 14:14
Avatar van Martijn1989 PHP ver gevorderde En hoe weet de $query in welke database hij de tabel kan vinden. > Je moet eerst connectie maken met een database dit doe je door dit te plaatsen :

  1. <?php
  2. /* Aanpassen aan JOUW DB! */
  3.  
  4. $DB = Array(
  5. "dbhost" => "localhost",
  6. "dbuser" => "*****", /* Database gebruiker */
  7. "dbpas" => "*****", /* Database wachtwoord */
  8. "dbname" => "*****" /* Database naam */
  9. );
  10.  
  11. /* Mysql connectie maken */
  12. mysql_connect($DB['dbhost'],$DB['dbuser'],$DB['dbpas']) or die ("<CODE>Sorry, connectie is verbroken.</CODE>");
  13. mysql_select_db($DB['dbname']) or die ("<CODE>Sorry, connectie is verbroken.</CODE>");
  14. ?>


De query is niet goed...

  1. <?php
  2. mysql_query("INSERT INTO `upload` (`naam uploader`, `bedrijfsnaam`, `omschrijving`, `naam bestand`) VALUES ('". $_POST['name'] ."', '". $_POST['bedrijf'] ."', '". $_POST['field'] ."', '". $_POST['naambestand'] ."')") or die (Mysql_Error());
  3. ?>
Offline RudyL - 08/06/2006 14:29
Avatar van RudyL Nieuw lid Hoi Martijn,

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
Offline xSc - 08/06/2006 14:44
Avatar van xSc Onbekend - Deze tekens niet gebruiken: `
- Let op MySQL-injecties! Gebruik addslashes() voor strings. Voor cijfers intval() en voor decimale getallen floatval()
Offline RudyL - 08/06/2006 15:00
Avatar van RudyL Nieuw lid 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.
Offline Thomas - 08/06/2006 15:13 (laatste wijziging 08/06/2006 15:13)
Avatar van Thomas 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?
Offline RudyL - 08/06/2006 15:41
Avatar van RudyL Nieuw lid Sorry vergeten te vermelden die heb ik al aangepast door een _ te plaatsen.

De code is ook iets veranderd.

Regel 1

<?php mysql_connect('*****','*****','*****');
mysql_select_db('testdb') or die (mysql_error()); ?>

Regel 130

<?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());
?>

-------------------

Nu krijg ik echter een:

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 ')' at line 1

maak gebruik van volgens mij 4.1.18
Offline Martijn1989 - 08/06/2006 16:47
Avatar van Martijn1989 PHP ver gevorderde @ 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.

Offline RudyL - 09/06/2006 08:43
Avatar van RudyL Nieuw lid Sorry, hoezo fout van die query?
Offline marten - 09/06/2006 09:10 (laatste wijziging 09/06/2006 09:16)
Avatar van marten Beheerder @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 


  1. <?php
  2.  
  3. $naam = addslashes($_POST['name']);
  4. $bedrijf = addslashes($_POST['bedrijf']);
  5. $field = addslashes($_POST['field']);
  6. $bestnaam = addslashes($_FILES['bestand']['name']);
  7.  
  8. $query="INSERT INTO
  9. upload (
  10. Naam_uploader,
  11. Bedrijfsnaam,
  12. Omschrijving,
  13. Naam_bestand
  14. )
  15. VALUES (
  16. '".$naam."',
  17. '".$bedrijf."',
  18. '".$field."',
  19. '".$bestnaam"'
  20. )";
  21. mysql_query($query) or die (mysql_error());
  22. ?>


Achter de laatste value had je per ongeluk ook een komma gezet 
Offline RudyL - 15/06/2006 11:58
Avatar van RudyL Nieuw lid @Marten,

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.

Iedereen bedankt voor de hulp.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s