Gegevens toevoegen in database via ODBC koppeling.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roy Jeurissen

Roy Jeurissen

12/10/2010 10:37:03
Quote Anchor link
Goededag!

Ik wil graag klantgegevens invoeren in een formulier dat zich daarna wegschrijft in mijn Acces database. Ik maak dus gebruik van een ODBC-koppeling.

Echter heb ik een probleempje.. Ik krijg telkens, mijn eigengemaakte, foutmelding.
(Fout, gegevens zijn niet ingevoerd)

Om te controleren of er een fout in mijn PHP script heb ik een test tabel gemaakt. Hierin werden de gegevens wel toegevoegd. Hopelijk kunnen jullie mij hierbij helpen.

het formulier:

klant_toevoegen.php

<html>
<body>
<h2>Klant toevoegen</h2>

<form method="post" action="klant_toevoegenscript.php">

Bedrijfsnaam: <input type="text" name="Bedrijfsnaam" size="30"><br>
Voornaam: <input type="text" name="Voornaam" size="30"><br>
Tussenvoegsel: <input type="text" name="Tussenvoegsel" size="30"><br>
Achternaam: <input type="text" name="Achternaam" size="30"><br>
Straat: <input type="text" name="Straat" size="30"><br>
Huisnummer: <input type="text" name="Huis#" size="30"><br>
Huisnummer toevoeging: <input type="text" name="Huis#toevoeging" size="30"><br>
Postcode: <input type="text" name="Postcode" size="30"><br>
Plaats: <input type="text" name="Plaats" size="30"><br>

<br>
<hr>
<input type="submit" value="Invoegen"><input type="Reset" Value="Leegmaken"><br>
</form>
</body>
</html>

het script:
klant_toevoegenscript.php

<html>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

$conn
=odbc_connect('hoogesteen','','');
if (!$conn)
  {
exit("Connection Failed: " . $conn);
exit();


}
else{

$query="INSERT INTO TBL_Klant (Bedrijfsnaam, Voornaam, Tussenvoegsel, Achternaam, Straat, Huis#, Huis#toevoeging, Postcode, Plaats)
"
;
$query .= "VALUES ('";
$query .= $_POST["Bedrijfsnaam"] ."','" ;
$query .= $_POST["Voornaam"] ."','" ;
$query .= $_POST["Tussenvoegsel"] ."','" ;
$query .= $_POST["Achternaam"] ."','" ;
$query .= $_POST["Straat"] ."','" ;
$query .= $_POST["Huis#"] ."','" ;
$query .= $_POST["Huis#toevoeging"] ."','" ;
$query .= $_POST["Postcode"] ."','" ;
$query .= $_POST["Plaats"] ."');" ;
$rs=odbc_exec($conn, $query) or die ("Fout! gegevens zijn niet ingevoerd");
}

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

echo("De volgende gegevens zijn ingevoegd:<br>\n");
echo("Bedrijfsnaam: <b>". $_POST["Bedrijfsnaam"] . "</b><br>");
echo("Voornaam: <b>". $_POST["Voornaam"] . "</b><br>");
echo("Tussenvoegsel: <b>". $_POST["Tussenvoegsel"] . "</b><br>");
echo("Straat: <b>". $_POST["Straat"] . "</b><br>");
echo("Huisnummer <b>". $_POST["Huis#"] . "</b><br>");
echo("Huisnummer toevoeging: <b>". $_POST["Huis#toevoeging"] . "</b><br>");
echo("Postcode: <b>". $_POST["Postcode"] . "</b><br>");
echo("Plaats: <b>". $_POST["Plaats"] . "</b><br>");
odbc_close( $conn);
?>


</body>
</html>


hoogesteen is de DNS naam die ik heb gegeven om te kunnen verbinden.


Verder heb ik dus een Access Tabel genaamd TBL_Klant. Hierin zitten de volgende velden:

Klant# autonummering
Bedrijfsnaam text
Voornaam text vereist
Tussenvoegsel text
Achternaam text vereist
Straat text vereist
Huis# nummeriek vereist
Huis#toevoeging text
Postcode text vereist
Plaats text vereist

Hopelijk kunnen jullie mij hierbij helpen.
 
PHP hulp

PHP hulp

27/04/2024 20:03:20
 
- SanThe -

- SanThe -

12/10/2010 10:42:07
Quote Anchor link
Roy Jeurissen op 12/10/2010 10:37:03:
Ik krijg telkens, mijn eigengemaakte, foutmelding.


Zorg dus dat de 'echte' error op het scherm verschijnt.

Script is lek => SQL-Injection.
 
Roy Jeurissen

Roy Jeurissen

12/10/2010 10:43:57
Quote Anchor link
SanThe Nvt op 12/10/2010 10:42:07:
Roy Jeurissen op 12/10/2010 10:37:03:
Ik krijg telkens, mijn eigengemaakte, foutmelding.


Zorg dus dat de 'echte' error op het scherm verschijnt.

Script is lek => SQL-Injection.


Ik ben nog een redelijke beginner.. om het maar even erbij te vermelden.

Heb je een idee hoe ik de "echte" error tevoorschijn kan toveren?
 
- SanThe -

- SanThe -

12/10/2010 10:46:17
 
Roy Jeurissen

Roy Jeurissen

12/10/2010 10:46:41
Quote Anchor link


bedankt, even een kijkje nemen.

Toevoeging op 12/10/2010 11:00:58:

Ik kreeg een error met alleen maar een code, namelijk: 37000

Deze heb ik opgezocht en bestaat uit:

ODBC Error Code = 37000 (Syntax error or access violation)

kunnen jullie hier iets mee?
 
Teun Hesseling

Teun Hesseling

12/10/2010 11:06:28
Quote Anchor link
syntax betekent vaak een typfout...

Toevoeging op 12/10/2010 11:12:57:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php $query = "INSERT INTO TBL_Klant (
    Bedrijfsnaam,
    Voornaam,
    Tussenvoegsel,
    Achternaam,
    Straat,
    Huis#,
    Huis#toevoeging,
    Postcode,
    Plaats
)

VALUES ('
    '"
.$_POST["Bedrijfsnaam"]."',
    '"
.$_POST["Voornaam"]."',
    '"
.$_POST["Tussenvoegsel"]."',
    '"
.$_POST["Achternaam"]."',
    '"
.$_POST["Straat"]."',
    '"
.$_POST["Huis#"]."',
    '"
.$_POST["Huis#toevoeging"]."',
    '"
.$_POST["Postcode"]."',
    '"
.$_POST["Plaats"]."'
)
"
;

probeer het is op die manier
 
Roy Jeurissen

Roy Jeurissen

12/10/2010 11:14:57
Quote Anchor link
Heb weer een nieuwe error gekregen, waar ik wat meer info van krijg.

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

Helaas heeft het niet geholpen..kreeg een wit scherm.


Toevoeging op 12/10/2010 11:31:46:

Zou het kunnen liggen aan het veld Klant#. We hebben aangegeven dat dit autonummering is. Moet dit veld ook gewoon vermeld worden in het formulier/script?
Gewijzigd op 12/10/2010 11:30:11 door Roy Jeurissen
 
Teun Hesseling

Teun Hesseling

12/10/2010 11:38:42
Quote Anchor link
had een typo,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php VALUES (' ?>
had gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php VALUES ( ?>
moeten zijn, en nee een autonummering hoeft niet gemeld te worden
 
Roy Jeurissen

Roy Jeurissen

12/10/2010 11:42:25
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

$conn
=odbc_connect('hoogesteen','','');
if (!$conn)
  {
exit("Connection Failed: " . $conn);
exit();

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php $query = "INSERT INTO TBL_Klant (
    Bedrijfsnaam,
    Voornaam,
    Tussenvoegsel,
    Achternaam,
    Straat,
    Huis#,
    Huis#toevoeging,
    Postcode,
    Plaats
)

VALUES (
    '"
.$_POST["Bedrijfsnaam"]."',
    '"
.$_POST["Voornaam"]."',
    '"
.$_POST["Tussenvoegsel"]."',
    '"
.$_POST["Achternaam"]."',
    '"
.$_POST["Straat"]."',
    '"
.$_POST["Huis#"]."',
    '"
.$_POST["Huis#toevoeging"]."',
    '"
.$_POST["Postcode"]."',
    '"
.$_POST["Plaats"]."'
)
"
;

?>


Ik heb het beginscript veranderd naar dit. Krijg alsnog een witscherm. Wellicht heb ik iets verkeerds gedaan.
 
- SanThe -

- SanThe -

12/10/2010 12:05:02
Quote Anchor link
Ik zou geen #-jes in de veldnamen gebruiken. Dus in Huis# en Huis#toevoeging.
 
Roy Jeurissen

Roy Jeurissen

13/10/2010 09:49:22
Quote Anchor link
SanThe Nvt op 12/10/2010 12:05:02:
Ik zou geen #-jes in de veldnamen gebruiken. Dus in Huis# en Huis#toevoeging.


Hey! ik heb het veld 'huis#' veranderd naar 'huisnummer' en hetzeflde bij huisnummertoevoeging gedaan. Nu werkt het inderdaad! had nooit geweten dat een # niet in een veldnaam gebruikt mag worden.. weer iets geleerd.

In iedergeval hartstikke bedankt voor de hulp!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.