Meerdere database connections..

  • Beste,
    Ik heb een nieuw login scriptje geschreven, omdat ik met meerdere databases wil werken (1 database voor de accounts, en dan 1 per wereld).
    Maar, ik krijg een error, terwijl ik die niet verwacht had.
    Ik krijg hem ook niet opgelost...
    Het gaat om dit stukje script:


    Ik krijg daar deze errors:

    PHP
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/home/deb27292/domains/mafiastar.eu/public_html/login/login.php on line 14
    
    
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/home/deb27292/domains/mafiastar.eu/public_html/login/login.php on line 15


    Je kan het zelf ook uitproberen.
    Ga naar http://mafiastar.eu/index_new.php
    Inloggen met:
    larsje & larsje
    (linksboven)
    Dan krijg je nog 1 extra error, maar daar vraag ik later wel weer naar :)
    Eerst de sql.



    Alvast bedankt,


    Lars Groot


    P.S. Ga niet zeiken dat m'n sql methodes niet goed zijn, dit is enkel een test.

  • even 1 tip erbij:

    PHP
    // none of thesehandles are re-used as the connection parameters are different on them all, despite connecting to the same server (assuming 'myuser' and 'otheruser' have the same privileges/accesses in mysql) 
    $handle_db1 = mysql_connect("localhost","deb27292_world1","Lars@Mafiastar"); 
    $handle_db2 = mysql_connect("localhost","deb27292_world1","Lars@Mafiastar"); 
    
    
    // give each handle it's own database to work with, permanently. 
    mysql_select_db("accounts",$handle_db1); 
    mysql_select_db("world1",$handle_db2);


    doe dit even korter:

    PHP
    // none of thesehandles are re-used as the connection parameters are different on them all, despite connecting to the same server (assuming 'myuser' and 'otheruser' have the same privileges/accesses in mysql) 
    $handle_db1 = mysql_connect("localhost","deb27292_world1","Lars@Mafiastar"); 
    
    
    // give each handle it's own database to work with, permanently. 
    mysql_select_db("accounts",$handle_db); 
    mysql_select_db("world1",$handle_db);


    Omdat je eigenlijk 1 account heb op je website en daaraan meerdere databases koppelt kan je dit gewoon korter maken..


    De volgende code:

    PHP
    $which = $handle_db1;
    $dbres2 = mysql_query("SELECT * FROM `users` WHERE `login`='{$_POST['login']}' AND `pass`=MD5('{$_POST['pass']}')",$which);


    Naar:

    PHP
    $dbres2 = mysql_query("SELECT * FROM `users` WHERE `login`='".$_POST['login']."' AND `pass`='".MD5($_POST['pass']) ."'");

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Heb het veranderd in dit:

    PHP
    $which = $handle_db1;
    $md5 = MD5($_POST['pass']);
    $dbres2 = mysql_query("SELECT * FROM `users` WHERE `login`='{$_POST['login']}' AND `pass`='$md5'",$which);
    $num = mysql_num_rows($dbres2);
    $data2= mysql_fetch_object($dbres2);


    Dus het zou opgelost moeten zijn, maar nee hoor :)
    Nog steeds dezelfde error...
    Als iemand er ff opnieuw naar zou willen kijken, wat er nu weer fout is :(


    NielsB, er staat helemaal niks in die onderste code tags?!


    Lars

  • Misschien moet je het volgende eerst eens proberen:


    1. Haal al je variabelen eens buiten qoutes: Werkt altijd, en is een stuk duidelijker.
    2. Stap eens van die mysql_* functies af, vooral als je met meerdere verbindingen werkt.
    3. Geef je variabele duidelijke namen, en niet $data2, $dbres2, ...
    4. Controleer je input! Zet magic_qoutes uit!

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!