[php/mysql] ik kom er niet meer uit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
Het volgende heb ik in een functie zitten, maar ik krijg steeds een error.
Ik loop al een hele tijd te zoeken, maar ik kan er maar niet achter komen waar de fout zit. Ziet iemand toevallig in 1 oogopslag waar de fout in mijn query zit?

PHP:
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
            $sql = 'INSERT INTO db (db) VALUES ($dbname);
                    CREATE TABLE $dbname_changelog (
                        id int(11) NOT NULL auto_increment,
                        project_id int(11) NOT NULL default \'0\',
                        maintainer_id int(11) NOT NULL default \'0\',
                        date varchar(20) NOT NULL default \'0\',
                        comment text NOT NULL,
                        UNIQUE KEY id (id)
                        ) TYPE=MyISAM;");

                    CREATE TABLE $dbname_changelog (
                        id int(11) NOT NULL auto_increment,
                        project_id int(11) NOT NULL default \'0\',
                        maintainer_id int(11) NOT NULL default \'0\',
                        date varchar(20) NOT NULL default \'0\',
                        comment text NOT NULL,
                        UNIQUE KEY id (id)
                        ) TYPE=MyISAM;

                    CREATE TABLE $dbname_maintainers (
                        id int(11) NOT NULL auto_increment,
                        maintainer varchar(255) NOT NULL default \'\',
                        password varchar(250) NOT NULL default \'\',
                        UNIQUE KEY id (id)
                        ) TYPE=MyISAM;

                    INSERT INTO $dbname_maintainers VALUES (1,\'admin\', MD5(\'admin\'));

                    CREATE TABLE $dbname_projects (
                        id int(11) NOT NULL auto_increment,
                        project varchar(255) NOT NULL default \'\',
                        UNIQUE KEY id (id)
                        ) TYPE=MyISAM;
                     ';
            
        mysql_query($sql) or die ("werkt nie");

dus ...


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:52
Mocht je nu eens zeggen welke fout je krijgt, en even de P&W quickstart kunt lezen, dan kunnen we je misschien beter helpen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
de fout is waar ik die("werkt nie"); geef.. deze melding krijg ik dus ook keurig.
De fout zit hem dus daadwerkelijk in de query.. De connectie met de database e.d. werkt allemaal prima, want dit is slechts een onderdeel van een site.

[ Voor 52% gewijzigd door mph_rbi op 25-08-2003 16:18 ]

dus ...


Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
Op dit moment krijgt ie waarschijnlijk de error: "werkt nie" :)

Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
inderdaad :)

dus ...


Acties:
  • 0 Henk 'm!

Verwijderd

maak daar eens van
code:
1
or die (mysql_error());
Dan krijg je een iets wat helderde foutmelding

[edit @ D2k] ff wat anders doen dan ASP en VBscript... kan ik zo weer fris aan de slag (tot 17:00) ;)

[ Voor 35% gewijzigd door Verwijderd op 25-08-2003 16:20 ]


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

mysql_error()
.edit

ej Soet
ga es werken man ;)

[ Voor 60% gewijzigd door D2k op 25-08-2003 16:19 ]

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

verander
die('werkt niet')
eens in :
die(mysql_error())

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Brainstorm
  • Registratie: November 2000
  • Laatst online: 16-09 21:47
Verander het eens in:
PHP:
1
mysql_query($sql) or die mysql_error());


Welke fout kijg je nu?

Programmer's Drinking Song: 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 100 little bugs in the code. (go to start if bugs>0)


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:52
Wel, zorg er eens voor dat je de fout die MySQL genereert te zien krijgt.

Ik ken geen php, maar meestal heb je 2 functies om queries uit te voeren:
1 om SELECT queries uit te voeren (en die dus een rowset returned)
en 1 om DELETE / INSERT / UPDATE / CREATE .... statements mee uit te voern.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
Probeer eens:
mysql_query($sql) or die (mysql_error());

Dan zie je ook nog wát er fout is aan de query

Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
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 $dbname_changelog ( id int(11) N

okido.. dan is het nog vreemd :).. Btw,. bedankt voor die tip.. mysql_error() kende ik nog niet.

[ Voor 15% gewijzigd door mph_rbi op 25-08-2003 16:20 ]

dus ...


Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
Uhm, hoezo we denken hetzelfde? :)

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

NoLife schreef op 25 augustus 2003 @ 16:19:
Verander het eens in:
PHP:
1
mysql_query($sql) or die mysql_error());
Welke fout kijg je nu?
offtopic:
parse error, haakje te weinig ;)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
Misschien komt het doordat je probeert 2x dezelfde table aan te maken?
edit: die 1e Create table ziet er sowieso niet helemaal fris uit onderaan

[ Voor 35% gewijzigd door Tuvow op 25-08-2003 16:23 ]


Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
dacht ik ook .. was inderdaad een nogal grove fout ;) .. is aangepast, maar ik krijg nog steeds dezelfde melding..

dus ...


Acties:
  • 0 Henk 'm!

Verwijderd

De enkele quotes zijn het probleem denk ik. Nu worden nml de vars niet geparst en worden er tabelnamen die beginnen met $ aangemaakt en dat mag niet van MySQL

[edit]

dus sql = '...' wordt sql = "..."

[ Voor 13% gewijzigd door Verwijderd op 25-08-2003 16:25 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:52
Tuvow schreef op 25 August 2003 @ 16:21:
Misschien komt het doordat je probeert 2x dezelfde table aan te maken?
edit: die 1e Create table ziet er sowieso niet helemaal fris uit onderaan
Dan zou je geen parse error krijgen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

kon mySQL niet toevallig maar 1 query tegelijk uitvoeren?
Verder: variabelen tussen enkele quotes worden niet geparsed...

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 12:06
Zelf gebruik ik voor iedere query een aparte mysql_query() dus ik weet het niet zeker, maar volgens mij vind PHP het niet leuk als je meerdere query's meegeeft (kan het antwoord dan niet parsen ofzo).

Maar zoals ik al zei: ik gebruik het nooit, dus het kan zijn dat ik uit m'n nek sta te kletsen...

Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
Scooterd : Je hebt gelijk .. ook dat heb ik nu aangepast.. ook de fout op #9 is verholpen, maar ik krijg nu dit :

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 ( id int(11) NOT NULL auto_incr

[ Voor 4% gewijzigd door mph_rbi op 25-08-2003 16:28 ]

dus ...


Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
whoami schreef op 25 August 2003 @ 16:26:
[...]


Dan zou je geen parse error krijgen.
Die krijgt hij toch ook niet? Volgens mij zegt MySQL dat hij een syntax error heeft

Acties:
  • 0 Henk 'm!

Verwijderd

ik mis al een tabel naam in jouw error-regel hierboven.... Komen alle variabele wel door???

Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
mph_rbi schreef op 25 August 2003 @ 16:27:
Scooterd : Je hebt gelijk .. ook dat heb ik nu aangepast.. ook de fout op #9 is verholpen, maar ik krijg nu dit :

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 ( id int(11) NOT NULL auto_incr
De table moet een naam hebben

Acties:
  • 0 Henk 'm!

Verwijderd

dat bedoelde ik te zeggen :)

Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
Tsja, dit soort dingen krijg je als je tegelijkertijd een post zit te typen :)

Acties:
  • 0 Henk 'm!

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 12:06
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 ( id int(11) NOT NULL auto_incr
Waarschijnlijk wordt $dbname_changelog als hele variable-naam gezien. probeer eens
SQL:
1
mysql_query("CREATE TABLE ".$dbname."_changelog bla bla bla");

[ Voor 41% gewijzigd door jurri@n op 25-08-2003 16:34 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:52
Tuvow schreef op 25 August 2003 @ 16:29:
[...]


Die krijgt hij toch ook niet? Volgens mij zegt MySQL dat hij een syntax error heeft
Toch wel, MySQL geeft een parse error dat er iets niet klopt met z'n sql syntax.

Mocht z'n query goed zijn (syntactisch), dan voert MySQL hem uit. Als dan blijkt dat hij een naam 2x gebruikt, dan gaat MySQL een ander type error geven.
Nu voert MySQL die query al niet uit omdat er een syntax-fout in zit: parse-error.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
whoami schreef op 25 August 2003 @ 16:34:
[...]


Toch wel, MySQL geeft een parse error dat er iets niet klopt met z'n sql syntax.

Mocht z'n query goed zijn (syntactisch), dan voert MySQL hem uit. Als dan blijkt dat hij een naam 2x gebruikt, dan gaat MySQL een ander type error geven.
Nu voert MySQL die query al niet uit omdat er een syntax-fout in zit: parse-error.
Jij wint :)

Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
jurri@n: Heb ik geprobeerd.. hij parsed nu netjes de variabele, maar krijg nu dit :

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 testtest_changelog ( id int(11)

dus ...


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:52
Er is hier al een aantal keer geopperd dat MySQL slechts 1 query tegelijk kan uitvoeren....
Misschien moet je dat eens van dichterbij gaan bekijken.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Tuvow
  • Registratie: Juli 2002
  • Laatst online: 15-09 16:01
En misschien is het een optie om de tables gewoon even aan te maken met phpMyAdmin oid?

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Tuvow schreef op 25 August 2003 @ 16:42:
En misschien is het een optie om de tables gewoon even aan te maken met phpMyAdmin oid?
Ik neem aan dat dit een soort van installatiescript wordt, anders lijkt dit me een beetje tijdsverspilling. Is het verder niet mogelijk om de map in het mysql data mapje te kopiëren? Of krijg je dan troubles met mysql. Uiteraard wel eerst mysql down halen.

[ Voor 10% gewijzigd door djluc op 25-08-2003 16:50 ]


Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
Tuvow schreef op 25 augustus 2003 @ 16:42:
En misschien is het een optie om de tables gewoon even aan te maken met phpMyAdmin oid?
dit is geen optie, omdat hij tabellen dynamisch creeert.
Ik ben nu de code aan het omhacken dat hij maar 1 query per keer uitvoert.

[ Voor 14% gewijzigd door mph_rbi op 25-08-2003 16:57 ]

dus ...


Acties:
  • 0 Henk 'm!

  • mph_rbi
  • Registratie: Januari 2001
  • Niet online
IK HEB HET!

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
       mysql_query("INSERT INTO db (db) VALUES ('$dbname')") or die (mysql_error());
       mysql_query("CREATE TABLE ".$dbname."_changelog (
                        id int(11) NOT NULL auto_increment,
                        project_id int(11) NOT NULL default '0',
                        maintainer_id int(11) NOT NULL default '0',
                        date varchar(20) NOT NULL default '0',
                        comment text NOT NULL,
                        UNIQUE KEY id (id)
                        ) TYPE=MyISAM;") or die (mysql_error());

        mysql_query("CREATE TABLE ".$dbname."_maintainers (
                  id int(11) NOT NULL auto_increment,
                  maintainer varchar(255) NOT NULL default '',
                  password varchar(250) NOT NULL default '',
                  UNIQUE KEY id (id)
                ) TYPE=MyISAM;") or die (mysql_error());

        mysql_query("INSERT INTO ".$dbname."_maintainers VALUES (1,'admin', MD5('admin'))") or die (mysql_error());

        mysql_query("CREATE TABLE ".$dbname."_projects (
                  id int(11) NOT NULL auto_increment,
                  project varchar(255) NOT NULL default '',
                  UNIQUE KEY id (id)
                ) TYPE=MyISAM;") or die (mysql_error());


Dit werkt dus.. Bedankt !!!

dus ...

Pagina: 1