Probleem met INSERT INTO

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koen -

Koen -

02/11/2010 11:32:53
Quote Anchor link
Heb een probleem met insert into, deze geeft een error: 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. Hoewel als ik alle input velden invul het geen foutmelding laat zien.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php

    $selectLandOrder
= 'SELECT db_land.id, db_land.naam FROM db_land WHERE db_land.order != 0 ORDER BY db_land.order, db_land.naam';
    $resultLandOrder = mysql_query($selectLandOrder);
    
    $selectLand = 'SELECT db_land.id, db_land.naam FROM db_land ORDER BY db_land.naam';
    $resultLand = mysql_query($selectLand);

?>


<link rel="stylesheet" href="../css/content.css"/>
<h1>Voeg een nieuwe Klant toe</h1>
<form name="add_klant" action="" method="post">
    <div id="add_all">
        <div id="add_text">
            <div class="add_text">Winkel*</div>
            <div class="add_text">Contactpersoon*</div>
            <div class="add_text">bedrijf_id*</div>
            <div class="add_text">Adres*</div>
            <div class="add_text">Postcode*</div>
            <div class="add_text">Plaats*</div>    
            <div class="add_text">Land*</div>    
            <div class="add_text">Telefoon*</div>    
            <div class="add_text">Mobiel</div>    
            <div class="add_text">Fax</div>    
            <div class="add_text">E-mail*</div>
            <div class="add_text">Korting</div>
            <div class="add_text">Betaaltermijn</div>
            <div class="add_text">Geslacht*</div>
            <div class="add_text">Wachtwoord*</div>
            <div class="add_text">Kvk</div>
            <div class="add_text">Btw</div>
            <div class="add_text">Nieuwsbrief</div>
            <div class="add_test">Actief</div>
            <div class="add_text">Notitie</div>
        </div>
        <div id="add_input">
            <div class="add_input"><input type="text" name="winkel" id="winkel"/></div>
            <div class="add_input"><input type="text" name="contactpersoon" id="contactpersoon"/></div>
            <div class="add_input"><input type="text" name="bedrijf_id" id="bedrijf_id"/></div>
            <div class="add_input"><input type="text" name="adres" id="adres"/></div>
            <div class="add_input"><input type="text" name="postcode" id="postcode"/></div>
            <div class="add_input"><input type="text" name="plaats" id="plaats"/></div>
            <div class="add_input">
            <select name="select_land" id="select_land">
                <option value="0">--</option>
                <optgroup label="Meest Voorkomend">
                <?php
                    while($rowLandOrder = mysql_fetch_assoc($resultLandOrder))
                    {

                        echo'<option value="'.$rowLandOrder['id'].'">'.$rowLandOrder['naam'].'</option>';
                        
                    }

                    echo '</optgroup>
                        <optgroup label="Andere">'
;
                    while($rowLand = mysql_fetch_assoc($resultLand))
                    {

                        echo '<option value="'.$rowLand['id'].'">'.$rowLand['naam'].'</option>';
                    }

                    echo '</optgroup>';
                ?>

            </select></div>
            <div class="add_input"><input type="text" name="telefoon" id="telefoon"/></div>
            <div class="add_input"><input type="text" name="mobiel" id="mobiel"/></div>
            <div class="add_input"><input type="text" name="fax" id="fax"/></div>
            <div class="add_input"><input type="text" name="e-mail" id="e-mail"/></div>
            <div class="add_input"><input type="text" name="korting" id="korting"/></div>
            <div class="add_input"><input type="text" name="betaaltermijn" id="betaaltermijn"/></div>
            <div class="add_input"></div><div class="radio">
            <input type="radio" name="geslacht" value="man" /> Man
            <input type="radio" name="geslacht" value="vrouw" /> Vrouw<br />
            </div>
            <div class="add_input"><input type="password" name="wachtwoord" id="wachtwoord"/></div>
            <div class="add_input"><input type="text" name="kvk" id="kvk"/></div>
            <div class="add_input"><input type="text" name="btw" id="btw"/></div>
            <div class="add_input"><input type="checkbox" name="nieuwsbrief" id="nieuwsbrief" value="1"/></div>
            <div class="add_input"></div><div class="radio">
            <input type="radio" name="actief" value="1" /> Ja
            <input type="radio" name="actief" value="2" /> Nee
            </div>
            <div class="add_input"><input type="text" name="notitie" id="notitie"/></div>
            <div class="add_input"><input type="submit" name="submit" id="submit" value="Opslaan"/></div>
        </div>
    </div>
</form>
<?php


    if(isset($_POST['submit']))
    {
    
        
        $winkel = mysql_real_escape_string($_POST['winkel']);
        $contactpersoon = mysql_real_escape_string($_POST['contactpersoon']);
        $bedrijf_id = mysql_real_escape_string($_POST['bedrijf_id']);
        $adres = mysql_real_escape_string($_POST['adres']);
        $postcode = mysql_real_escape_string($_POST['postcode']);
        $plaats = mysql_real_escape_string($_POST['plaats']);
        $telefoon = mysql_real_escape_string($_POST['telefoon']);
        $mobiel = mysql_real_escape_string($_POST['mobiel']);
        $fax = mysql_real_escape_string($_POST['fax']);
        $email = mysql_real_escape_string($_POST['e-mail']);
        $korting = mysql_real_escape_string($_POST['korting']);
        $betaaltermijn = mysql_real_escape_string($_POST['betaaltermijn']);
        $geslacht = mysql_real_escape_string($_POST['geslacht']);
        $wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
        $kvk = mysql_real_escape_string($_POST['kvk']);
        $btw = mysql_real_escape_string($_POST['btw']);
        $nieuwsbrief = mysql_real_escape_string($_POST['nieuwsbrief']);
        $actief = mysql_real_escape_string($_POST['actief']);
        $notitie = mysql_real_escape_string($_POST['notitie']);
        
        if(!empty($winkel) && !empty($contactpersoon) && !empty($bedrijf_id) && !empty($adres) && !empty($postcode)  && !empty($plaats) && !empty($_POST['select_land']) && !empty($telefoon) && !empty($email) && !empty($geslacht) && !empty($wachtwoord))
        {

            $insertKlant = 'INSERT INTO db_klant (id, winkel, contactpersoon, bedrijf_id, adres, postcode, plaats, land, telefoon, mobiel, fax, email, korting, betaaltermijn, geslacht, wachtwoord, kvk, btw, nieuwsbrief, actief, notitie)
            VALUES (NULL, "'
.$winkel.'", "'.$contactpersoon.'", "'.$bedrijf_id.'", "'.$adres.'", "'.$postcode.'", "'.$plaats.'", '.$_POST['select_land'].',
                            '
.$telefoon.', '.$mobiel.', '.$fax.', "'.$email.'", '.$korting.', '.$betaaltermijn.',
                            "'
.$geslacht.'", "'.$wachtwoord.'", '.$kvk.', '.$btw.',  '.$nieuwsbrief.', '.$actief.', "'.$notitie.'")';
            echo $insertKlant;
            mysql_query($insertKlant) or die(mysql_error());
        }

        else
        {
            echo 'Er is een verplicht veld leeggelaten. De klant is niet toegevoegd aan de database.';
        }
        
    }

?>
Gewijzigd op 02/11/2010 12:02:06 door Koen -
 
PHP hulp

PHP hulp

21/11/2024 19:31:23
 
Teun Hesseling

Teun Hesseling

02/11/2010 11:37:27
Quote Anchor link
weet het niet zeker maar denk dat het fout gaat bij insert into id, en dat je de waarde null opgeeft daarvoor
 
Koen -

Koen -

02/11/2010 11:45:50
Quote Anchor link
Ik heb de waarde NULL iets anders gegeven maar dit werkt ook niet.
 
- SanThe -

- SanThe -

02/11/2010 11:51:45
Quote Anchor link
Volgens mij tel ik 20 velden en 21 waarden.

Edit: Er staan nog steeds $_POST waarden direct in de query => SQL-Injection. Haal de backtics uit de query.
Gewijzigd op 02/11/2010 11:54:08 door - SanThe -
 
Koen -

Koen -

02/11/2010 11:54:23
Quote Anchor link
Aangepast en heeft geen verschil opgeleverd
 
Teun Hesseling

Teun Hesseling

02/11/2010 12:13:06
Quote Anchor link
- SanThe - op 02/11/2010 11:51:45:
Volgens mij tel ik 20 velden en 21 waarden.

helemaal waar
EDIT: toch niet:p maar wat hij wel heeft is om de een ene waarde wel dubbele quotes en bij de andere niet, misschien daardoor?
Gewijzigd op 02/11/2010 12:20:16 door Teun Hesseling
 
Koen -

Koen -

02/11/2010 12:18:02
Quote Anchor link
Teun Hesseling op 02/11/2010 12:13:06:
- SanThe - op 02/11/2010 11:51:45:
Volgens mij tel ik 20 velden en 21 waarden.

helemaal waar


Dat heb ik inmiddels al aangepast had ik al aangegeven in mijn vorige reactie.

EDIT:

Is dit niet om verschil te maken tussen een integer en varchar? ;)
Gewijzigd op 02/11/2010 12:25:34 door Koen -
 



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.