query blijft maar fout gaan ...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

XSLT / Xquery Ontwikkelaar @ Den Haag

2021-06-24 iSense XSLT / Xquery Ontwikkelaar Heb jij ervaring met het ontwikkelen en beheren van Java applicaties? Heb je daarbij ook ervaring met XSLT? Dan is dit mogelijk jouw nieuwe opdracht! ISAC49772 Nieuw Organisatie KOOP ontwikkelt en beheert momenteel onder meer de volgende producten: 1. Wet- en regelgevingsportalen (o.a. Wetten.nl en CVDR ). Hier kunnen gebruikers op basis van trefwoorden en andere criteria wetten en regelgevingen inzichtelijk krijgen; 2. PUC Open Data platform (o.a. puc.overheid.nl en afgeleide producten en interne kennisbanken). Hier publiceren overheidsorganisaties zelf hun uitvoeringsinformatie die publiekelijk beschikbaar is, zoals beleid, handboeken, werkinstructies en berichten. 3. Wettenpocket+ (o.a.

Bekijk vacature »

J A

J A

31/03/2008 20:50:00
Quote Anchor link
Hallo,

Ik word echt een keer gek. Ik voor een installatie script een query nodig voor de database. Maar hij blijft maar fout gaan en kan de fout echt niet vinden. Dit geeft hij als foutmelding:

Quote:
Notice: 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 '; CREATE TABLE portfolio_gemaakt (
In query: CREATE TABLE portfolio ( id int(11) NOT NULL auto_increment, voorbeeld varchar(255) NOT NULL, naam varchar(255) NOT NULL, opdracht text NOT NULL, resultaat varchar(255) NOT NULL, lyte varchar(255) NOT NULL, lytewidth int(11) NOT NULL, lyteheight int(11) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE portfolio_gemaakt ( id int(11) NOT NULL auto_increment, portfolio_id int(11) NOT NULL, techniek_id int(11) NOT NULL, PRIMARY KEY (id) in /home/jordi/domains/jordi.frih.net/public_html/test/install.php on line 197


En hier is het stukje code:

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
<?php
if(!$db = mysql_connect($_POST['database_host'], $_POST['database_gebruikersnaam'], $_POST['database_wachtwoord']))
        {

            $_SESSION['errors']['database_host'] = true;
            $_SESSION['errors']['database_gebruikersnaam'] = true;
            $_SESSION['errors']['database_wachtwoord'] = true;
            $errors[] = 'Kon geen verbinding krijgen met database';
        }

        else
        {
            if(!mysql_select_db($_POST['database_dbnaam'], $db))
            {

                $_SESSION['errors']['database_dbnaam'] = true;
                $errors[] = 'Kon de database niet selecteren';
            }

            else
            {
                $query = "
                    CREATE TABLE portfolio (
                        id int(11) NOT NULL auto_increment,
                        voorbeeld varchar(255) NOT NULL,
                        naam varchar(255) NOT NULL,
                        opdracht text NOT NULL,
                        resultaat varchar(255) NOT NULL,
                        lyte varchar(255) NOT NULL,
                        lytewidth int(11) NOT NULL,
                        lyteheight int(11) NOT NULL,
                        PRIMARY KEY  (id)
                    );

                    CREATE TABLE portfolio_gemaakt (
                        id int(11) NOT NULL auto_increment,
                        portfolio_id int(11) NOT NULL,
                        techniek_id int(11) NOT NULL,
                        PRIMARY KEY  (id)
                    );

                    CREATE TABLE ratings (
                        id int(11) NOT NULL auto_increment,
                        portfolio_id varchar(80) NOT NULL,
                        rating_num int(11) NOT NULL,
                        IP varchar(25) NOT NULL,
                        PRIMARY KEY  (id)
                    );

                    CREATE TABLE techniek (
                        id int(11) NOT NULL auto_increment,
                        omschrijving varchar(255) NOT NULL,
                        PRIMARY KEY  (id)
                    );

                    INSERT INTO techniek VALUES (1, 'PSD');
                    INSERT INTO techniek VALUES (2, 'HTML');
                    INSERT INTO techniek VALUES (3, 'CSS');
                    INSERT INTO techniek VALUES (4, 'JS');
                    INSERT INTO techniek VALUES (5, 'FLASH');
                    INSERT INTO techniek VALUES (6, 'PHP');

                    CREATE TABLE admin (
                        admin_naam VARCHAR(255) NOT NULL ,
                        admin_wachtwoord VARCHAR(255) NOT NULL ,
                        url VARCHAR(255) NOT NULL ,
                        layout_soort VARCHAR(8) NOT NULL ,
                        layout_vorm VARCHAR(11) NOT NULL ,
                        plaatjes INT(11) NOT NULL ,
                        lytebox_kleur VARCHAR(6) NOT NULL ,
                        lytebox_flash VARCHAR(6) NOT NULL ,
                        lytebox_border VARCHAR(6) NOT NULL ,
                        lytebox_snelheid INT(2) NOT NULL
                    );

                    INSERT
                        INTO
                            admin
                        VALUES
                        (
                            '"
.$_POST['admin_naam']."',
                            '"
.$_POST['admin_wachtwoord']."',
                            '"
.$_POST['portfolio_url']."',
                            '"
.$_POST['portfolio_soort']."',
                            '"
.$_POST['portfolio_vorm']."',
                            "
.$_POST['portfolio_plaatjes'].",
                            '"
.$_POST['lytebox_kleur']."',
                            '"
.$_POST['lytebox_flash']."',
                            '"
.$_POST['lytebox_border']."',
                            "
.$_POST['lytebox_snelheid']."
                        );
                "
;

                if(!$res = mysql_query($query))
                {

                    trigger_error(mysql_error().'<br />In query: '.$query);
                }


                else
                {
?>
 
PHP hulp

PHP hulp

30/07/2021 16:16:38
 
Jan Koehoorn

Jan Koehoorn

31/03/2008 20:53:00
Quote Anchor link
Hij klaagt dus over die puntkomma (regel 29 van jouw voorbeeld).
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Frank -

Frank -

31/03/2008 20:56:00
Quote Anchor link
1) Met PHP een database of tabel aanmaken leidt in 99 van de 100 gevallen tot grote/zeer grote (veiligheids-) problemen.
2) Je gebruikt geen enkele vorm van beveiliging, nog meer problemen zijn je deel
3) mysql_query() kan maar 1 query uitvoeren, jij probeert er 12 uit te voeren. Vandaar dat de boel stuk loopt na de eerste query, dus ná de ;

Offtopic: diverse tabellen met onderlinge relaties, maar de relaties (de foreign keys) ontbreken. Er zijn dus geen relaties, er is geen sprake van een relationele database.
 
J A

J A

31/03/2008 20:58:00
Quote Anchor link
Het is dus slimmer om gewoon de gebruiker de tabellen toe te voegen. :)
 
Martijn B

Martijn B

31/03/2008 21:03:00
Quote Anchor link
Je zou sql bestanden kunnen verwerken.

Dan kun je zowel handmatig de bestanden uitvoeren of door een script.

Uiteraard moet dat script na het uitvoeren wel onklaar worden gemaakt.

edit:

MySQLi kan volgens mij meerdere queries uitvoeren.

http://nl.php.net/manual/en/function.mysqli-multi-query.php
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Frank -

Frank -

31/03/2008 21:06:00
Quote Anchor link
Jordi schreef op 31.03.2008 20:58:
Het is dus slimmer om gewoon de gebruiker de tabellen toe te voegen. :)
Dat zeg ik niet. Ik zeg wel dat je in 99 van de 100x tegen problemen gaat aanlopen, zie jouw huidige problemen en het onbreken van iedere vorm van beveiliging.

Tevens probeer je dingen te doen helemaal niet kunnen, dat duidt op een gebrek aan kennis. Zorg dat je eerst voldoende afweet van PHP voordat je met dit soort installatie-scripts aan de slag gaat, er kan een hele hoop fout gaan.
 
Martijn B

Martijn B

31/03/2008 21:09:00
Quote Anchor link
^^

Van fouten leer je gelukkig ook.
 
J A

J A

31/03/2008 21:28:00
Quote Anchor link
Quote:
Tevens probeer je dingen te doen helemaal niet kunnen


Het enige wat niet kon is zoveel dingen uitvoeren in in 1 keer. Maar ik heb toch maar besloten al het werk door de gebruiker zelf te laten doen :)
 
Frank -

Frank -

31/03/2008 21:38:00
Quote Anchor link
Uit de losse pols:
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
<?php
$aSQL
= array(
  "CREATE TABLE blablabla",
  "CREATE TABLE nog_meer_blablabla",
  "INSERT INTO blablabla ...",
  "INSERT INTO blablabla ...",
  "INSERT INTO blablabla ...",
  "CREATE TABLE bullshit"
);

foreach($aSQL as $query){
  if(!mysql_query($query)){
    echo mysql_error().$query; // blijkbaar iets mislukt
  }
}

?>

Array's doen wonderen...
 



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.