Database instellen via PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

HJ V

HJ V

10/10/2010 16:27:32
Quote Anchor link
Beste, ik probeer op een MediaWiki installatie een plugin te installeren. Hiervoor moet ik in de database een tabel toevoegen. Helaas heb ik geen directe toegang tot deze database (geen ssh of phpMyAdmin). Daarom probeer ik, met mijn beperkte kennis van php, een script te schrijven waarmee het moet lukken. Echter na het schrijven van diverse scrips wil het maar niet lukken. Graag zou ik dus aan advies willen vragen.

De gegevens voor de tabel die ik moet invoegen staan hier. Het laatst geschreven scriptje geeft mij de volgende melding waar ik weinig mee kan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 11


Het scriptje:
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
<html>
    <body>
        <?php
            // Connect
            mysql_connect("localhost", "***", "***") or die(mysql_error());
            mysql_select_db("***") or die(mysql_error());

            // Create table
            mysql_query("CREATE TABLE wiki_whitelist(
            wl_id int(8) NOT NULL auto_increment,
            wl_user_id int(5) NOT NULL,
            wl_page_title varchar(255) NOT NULL,
            wl_allow_edit int(1) NOT NULL,
            wl_expires_on varchar(19) DEFAULT NULL,
            wl_updated_by_user_id int(5) NOT NULL,
            wl_updated_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            PRIMARY KEY (wl_id),
            UNIQUE id (wl_id),
            )"
) or die(mysql_error());  
    
        ?>

    </body>
</html>


Is het iets simpels wat ik over het hoofd zie, of zou ik het script op een andere manier moeten schrijven? Graag hoor ik het.
Gewijzigd op 10/10/2010 16:28:17 door HJ V
 
PHP hulp

PHP hulp

19/04/2024 23:28:48
 
SilverWolf NL

SilverWolf NL

10/10/2010 16:56:40
Quote Anchor link
Er staat een , voor je laatste ), dat staat letterlijk in de foutmelding...

Edit:

Dood ga je maar een keer, dus bouw fatsoenlijke foutafhandeling in...
Gewijzigd op 10/10/2010 16:57:21 door SilverWolf NL
 
Wim E

Wim E

10/10/2010 17:30:57
Quote Anchor link
Daarnaast zou ik je aanraden om evt een localhost te gebruiken om te testen, en wanneer die werkt dan pas up te loaden.
 
- Ariën  -
Beheerder

- Ariën -

10/10/2010 19:29:52
Quote Anchor link
SilverWolf NL op 10/10/2010 16:56:40:
Er staat een , voor je laatste ), dat staat letterlijk in de foutmelding...

Edit:

Dood ga je maar een keer, dus bouw fatsoenlijke foutafhandeling in...

Wat is er hier mis met die()? Er na komt zo goed als geen output. Dus veel kwaad kan het niet.
 
Toby hinloopen

toby hinloopen

10/10/2010 22:22:51
Quote Anchor link
Aar anoniem op 10/10/2010 19:29:52:
SilverWolf NL op 10/10/2010 16:56:40:
Er staat een , voor je laatste ), dat staat letterlijk in de foutmelding...

Edit:

Dood ga je maar een keer, dus bouw fatsoenlijke foutafhandeling in...

Wat is er hier mis met die()? Er na komt zo goed als geen output. Dus veel kwaad kan het niet.

Na die() wordt je body/html tag niet eens gesloten. Het is gewoon niet netjes, geef gewoon een normale foutmelding. Wat is er mis met echo ipv die?
Wat is er mis met throw i.c.m. try/catch?
Wat is er mis met if($error) /*geef fout*/ else /*ga "normaal" verder met code en doe iets met je data*/
 
HJ V

HJ V

11/10/2010 20:04:28
Quote Anchor link
SilverWolf NL op 10/10/2010 16:56:40:
Er staat een , voor je laatste ), dat staat letterlijk in de foutmelding...


Dank dit heeft het probleem van de error opgelost.

SilverWolf NL op 10/10/2010 16:56:40:
Edit:

Dood ga je maar een keer, dus bouw fatsoenlijke foutafhandeling in...

Uhm, hier komt mijn beperkte kennis al om de hoek kijken. Hoe zou ik dat moeten doen dan?

Toby hinloopen op 10/10/2010 22:22:51:
Na die() wordt je body/html tag niet eens gesloten. Het is gewoon niet netjes, geef gewoon een normale foutmelding. Wat is er mis met echo ipv die?
Wat is er mis met throw i.c.m. try/catch?
Wat is er mis met if($error) /*geef fout*/ else /*ga "normaal" verder met code en doe iets met je data*/

Trow, try, catch zijn termen die mij niets zeggen. Sorry dat het waarschijnlijk een slechte scriptje is, maar ik doe dit ook niet voor mijn beroep. Als je mij concreet zou willen adviseren in hoe een mogelijke foutmelding wel afgehandeld moet worden, zou ik je zeer dankbaar zijn.

Dan heb ik nog een andere vraag, maar die zal waarschijnlijk niet hier thuis horen. De tabel die ik wil aanmaken met het scripje is de tabel "whitelist". Hiervoor zou nog een prefix moeten. Als ik echter in de settings van MediaWiki kijk wordt er achter het statement prefix geen prefix gespecificeerd.
Op mijn eigen server, waar ik voor test doeleinden ook een MediaWiki installatie heb draaien, wordt achter het prefix statement wel een prefix gespecificeerd.

Mijn vraag, zou ik er mee weg komen als ik geen prefix voor mijn tabel naam specificeer ("CREATE TABLE _whitelist" ipv "CREATE TABLE prefix_whitelist")?
 
- SanThe -

- SanThe -

11/10/2010 20:17:59
Quote Anchor link
HJ V op 11/10/2010 20:04:28:
Mijn vraag, zou ik er mee weg komen als ik geen prefix voor mijn tabel naam specificeer ("CREATE TABLE _whitelist" ipv "CREATE TABLE prefix_whitelist")?


Als je de prefix dan ook verder nergens meer gebruikt werkt dat natuurlijk gewoon. De prefix is bedoeld om data van verschillende oorsprong uit elkaar te houden. Zo kan je bijv. in één database data hebben van twee verschillende sites. De prefixen zijn dan bijv. site1_ en site2_.
Gewijzigd op 11/10/2010 20:32:57 door - SanThe -
 



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.