Gathering of Tweakers

Quicksearch
Nou moe...
Op mijn werk was ik bezig met onderstaande script.
Ik denk het ligt aan mij. Maar nu weet ik het niet meer.

Als ik één van de 2 queries uitzet dan werkt het wel.
quote:
//$result1 = doquery($query2);
Als ze allebei na elkaar gedraaid worden zoals in onderstaande script dan krijg ik een error.

Op mijn werk gaf mysql_error aan dat er geen database geselecteerd zou zijn.
Thuis geeft hij aan dat de inloggegevens niet juist zouden zijn.
quote:
Access denied for user 'ODBC'@'localhost'
Dit vind ik vreemd aangezien als ik dus 1 querie laat draaien het wel goed gaat.
Dus de database is dan geslecteerd en de inloggegevens kloppen.

Ik werk zowel thuis als op mijn werk met mysql 5 en Php 5.
Onder windows mbv wampserver.
code:
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
function connectdb(){
 
  include_once("inc/db_vars.inc.php");
  $link = mysql_connect($host, $login, $pass)
   or die("Ik kon geen verbinding maken" . mysql_error());
   mysql_select_db($dbname);
          echo mysql_errno() . ": " . mysql_error() . "\n";
          
  //print $dbname;
 
//  print ("<br />Verbinding gemaakt");
   return $link;
  }
 
 function doquery($query){
//  print $query;  
  
  $result = mysql_query($query,connectdb());
   
  return $result;
 
  mysql_free_result($result);
  
  }
  
$query1 = "SELECT * FROM mainmenu";
$result1 = doquery($query1);

$query2 = "SELECT * FROM mainmenu";
$result1 = doquery($query2);

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.

Je maakt elke keer dat je de functie doquery() aanroept, een nieuwe verbinding aan met de database. Misschien dat elke gebruiker maar 1 keer mag inloggen op MySQL, waardoor elke tweede verbinding er dus uitklapt ? :)

What do you mean I have no life? I am a gamer, I got millions!


Acties: [view][quote]


Door: -NMe- Admin DevschuurŽ
Watching you I am.

Maak de connection in connectdb() inderdaad "gewoon" static, en als die al bestaat hoef je dus niets nieuws te maken.
PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function connectdb(){
 
  include_once("inc/db_vars.inc.php");

  static $link = null;

  if (is_null($link)) {
    $link = mysql_connect($host$login$pass)
     or die("Ik kon geen verbinding maken" . mysql_error());
     mysql_select_db($dbname);
            echo mysql_errno() . ": " . mysql_error() . "\n";
          
    //print $dbname;
 
  //  print ("<br />Verbinding gemaakt");
   }
   return $link;
  }
?>

:)

Beter zou overigens zijn om je code wat aan te passen zodat de link ergens anders bijgehouden wordt en je niet steeds een functiecall hoeft te doen, maar dat is afhankelijk van de rest van je code. :)

-NMe- wijzigde dit bericht 17-05-2008 01:11 (15%)

"Sometimes I really think people ought to have to pass a proper exam before they're allowed to be parents. Not just the practical, I mean."
De Tweakers.net Tijdlijn

static, dat was hem. Ik heb de functie zoals hierboven gebruikt en nu gaat het goed.
Ik had ergens gelezen dat php een open verbinding automatisch gebruikt.
Ik heb hier van alles gepropeerd met het sluiten van de connectie,
freeën van result enz.
Maar dit was kennelijk de oplossing.
Mij is niet helemaal duidelijk wat je bedoeld met:
quote:
Beter zou overigens zijn om je code wat aan te passen zodat de link ergens anders bijgehouden wordt en je niet steeds een functiecall hoeft te doen, maar dat is afhankelijk van de rest van je code.
een apparte functie aanmaken die kijkt wat de status van de link is, en indien nodig opend door
connectdb() aan te roepen?

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Acties: [view][quote]


Door: -NMe- Admin DevschuurŽ
Watching you I am.

Nee, gewoon een variabele $link aanmaken in je hoofdcode en die doorgeven aan alle functies die je aanroept en hem nodig hebben. Dat scheelt wat funtiecalls. Al voldoet de code die je nu gebruikt waarschijnlijk ook wel. :)

"Sometimes I really think people ought to have to pass a proper exam before they're allowed to be parents. Not just the practical, I mean."
De Tweakers.net Tijdlijn



© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Alectrona

© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Alectrona

[RSS][XML]

Update Tracker

Active Topics
Active Topics
Frontpage Nieuws
Frontpage Nieuws