Hi,

Ik heb de volgende query. Op mijn server werkt die perfect, maar bij sommige niet. Dan wordt of de tabel of het vullen van de tabel niet goed uitgevoerd. Hoe dit op te lossen? Ik weet dat de gekozen namen, set, item niet handig gekozen zijn, maar daat gaat het nu even niet om:

function bbmenu_install() {
	global $bbdb;
	$query = "CREATE TABLE `$bbdb->menu` (
		`item_id` INT(3) NOT NULL AUTO_INCREMENT,
		`item` varchar(50) NOT NULL default '',
		`set` varchar(50) NOT NULL default '',
		`page` varchar(50) NOT NULL default '',
		`location` varchar(50) NOT NULL default '',
		`order` int(9) NOT NULL default '0',
		PRIMARY KEY  (`item_id`)
		);
		";
		
	$bbdb->query($query);
	
	mysql_query ("INSERT INTO `$bbdb->menu` VALUES 
	(DEFAULT, 'Forums', 'active', 'index.php', 'front-page', 0),
	(DEFAULT, 'Search', 'active', 'search.php', 'search-page', 1),
	(DEFAULT, 'Statistics', 'inactive', 'statistics.php', 'stats-page', 0);");
}


Thx
Waarom wil je tabellen dynamisch aanmaken? Dat is vrijwel zonder uitzondering vragen om problemen. Het is alleen goed voor jouw eigen versie van PHPMyAdmin.

Backtics gooi je uiteraard weg en hier en daar verzin je een wat betere naam. set en order gaan problemen opleveren.
Frank schreef op 02.04.2007 19:20
Backtics gooi je uiteraard weg en hier en daar verzin je een wat betere naam. set en order gaan problemen opleveren.


Die backtics zijn anders nog best wel handig voor voor gereserveerde worden in mysql:)

Of niet?
De error:
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in.../forums.geekpulp.co.nz/my-plugins/bbmenu.php on line 314

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in .../forums.geekpulp.co.nz/my-plugins/bbmenu.php on line 314

En dit script maakt onderdeel uit van een plugin en dient daarom aangemaakt te worden. En die namen weet ik ook, (hoewel het in backticks niet zou hoeven uitmaken).

De vraag is waarom het bij sommige wel werkt en bij andere niet en hoe het op te lossen...

Thx
mebus schreef op 02.04.2007 19:22
[quote='Frank schreef op 02.04.2007 19:20']Backtics gooi je uiteraard weg en hier en daar verzin je een wat betere naam. set en order gaan problemen opleveren.


Die backtics zijn anders nog best wel handig voor voor gereserveerde worden in mysql:)

Of niet?[/quote]
Je kan ze inderdaad gebruiken om gereserveerde woorden als kolomnaam te kunnen gebruiken, maar handig is het niet. Je gaat alleen maar fouten maken. En vaak zijn kolomnamen die tevens gereserveerde woorden zijn, niet duidelijk omschrijvend voor de inhoud.
Je kan ze ook gebruiken om spaties in kolomnamen te doen, maar vroeg of laat ga je hierdoor fouten maken, en het werkt prima zonder. dus waarom ze gebruiken?
mebus schreef op 02.04.2007 19:22
[quote='Frank schreef op 02.04.2007 19:20']Backtics gooi je uiteraard weg en hier en daar verzin je een wat betere naam. set en order gaan problemen opleveren.


Die backtics zijn anders nog best wel handig voor voor gereserveerde worden in mysql:)

Of niet?[/quote]Het jezelf aanleren van foute SQL is inderdaad vreselijk handig. Vooral wanneer dat extra problemen en fouten op gaat leveren...
Wat betreft je error. Daar staat duidelijk in dat hij de mysql server niet kan vinden. Maak je wel eerst verbinding met de database??
En eerst connecten is ook vaak wel handig.
Oooppss verkeerder error, dit is de goeie:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/.../public_html/forums/my-plugins/bbmenu.php on line 325

Dit geeft ie dus omdat de table niet gevuld is. Dus het laatste gedeelte van de code wordt niet altijd uitgevoerd...
Die melding betekent een fout in de syntax van je voorlaatste query. Gebruik mysql_errno () en mysql_error () om erachter te komen wat er niet klopt.

Reageren