php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.01.2006, 11:35  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard Verzweifel: Verbindung zu 2 datenbanken

Tach zusammen!

Ich komm leider absolut nicht weiter. Es ist an einigen Stellen notwendig,
Operationen auf einer zweiten Datenbank vorzunehmen, wobei die
Verbindung zur Hauptdatenbank weiter aktiv sein muss.

zu diesem zweck hab ich ein Paar Konstanten definiert: constants.php
PHP-Code:
<?
 
/**
 *
 * Constants.php
 *
 **/
 
define("host""localhost");
 
define("user""root");
 
define("pass""");
 
define("name""shop");

 
define("host2""localhost"); // nur zu Testzwecken auf localhost, später extern
 
define("user2""root");
 
define("pass2""");
 
define("name2""extern");
?>
die Verbindung zur Datenbank geschieht über: cms_functions.php
PHP-Code:
<?
/**
 * functions.php
 *
 * beinhaltet die Grundfunktionen des Session-Mangements insbes. Datenbankverbindung
 *
 * written by: m.heyder, germany (2005)
 */
error_reporting (E_ALL);
ini_set('display_errors'TRUE);

class 
dbconn
  
{
  var 
$connect=false;

  
/* dbconn - The Class-Construktor */

  
function dbconn($host,$user,$pass,$name)
    {
    
$this->name=$name;
    
$this->connect=mysql_connect($host$user$pass,TRUE) or die(mysql_error());
    
mysql_select_db($name$this->connect) or die(mysql_error());

    }


  
/* liefert Datenbank Query */

  
function query($query) { return mysql_query($query,$this->connect); }
  }

;
$db1= new dbconn(host,user,pass,name);
?>
Und die datenbank-Funktionen liegen in: db_functions.php
PHP-Code:
<?
/**
 * dbfunctions.php
 *
 * written by: m.heyder, germany (2005)
 */

 
error_reporting (E_ALL);
ini_set('display_errors'TRUE);
class 
functions
    
{
    var 
$connect;
    var 
$db1;
    var 
$xtpl;

    
/* Prozedur, um die Navigationsleiste im Top-Contentbereich zu aus der Datenbank zu generieren*/
    
function showkats($tpl)
        {
        global 
$db1$xtpl$lang;

        
$sql="SELECT * FROM " tbl_catalog " where cat_parent_id='0' order by cat_description";
        
$result=$db1->query($sql);
        
$hlp="0";
        if(isset(
$_GET['katPath'])) $hlp=$_GET['katPath'];

        
// notwendig, um das Highlighting im Deadlink-Modus zu steuern
        
if (empty($_GET["katPath"])&& isset($_GET['productID']))
            {

            
$hlp=$this->getKatPath($_GET["productID"]);

            
$hlp=substr(str_replace("-""_"$hlp), 3, (strlen($hlp) - 4));
            }

        
$array =explode("_"$hlp);
        
$kat   =$array[0];
        if(!empty(
$array[1])) $subkat=$array[1];

        while (
$data=mysql_fetch_array($result))
            {
            
$xtpl->assign('id'$data["cat_id"]);

            
// markiert die momentan gewählte Rubrik
            
if ($kat == "" $data["cat_id"] . "")
                
$xtpl->assign('active''class="active"');
            else
                
$xtpl->assign('active''');

            
$xtpl->assign('katname'$lang["" $data["cat_description"] . ""]);
            
$xtpl->parse('' $tpl '.list');
            }
        }
}
?>
soweit so gut, funktioniert auch wunderbar.

Wenn ich nun eine zweite Instanz hinzufüge in cms_funktions php
PHP-Code:
<?
$db1
= new dbconn(host,user,pass,name);
$db2= new dbconn(host2,user2,pass2,name2);
?>
liefern mir die Datenbank funktionen allesamt Fehlermeldung, dass
supplied argument is not a valid result ressource. Für mich ein klares
Anzeichen, das die Verbindung zur DB1 nicht mehr aktiv ist.

What's going wrong?

mfG
Timo Trallala
Timo Trallala ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.01.2006, 12:08  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Sie ist noch aktiv, aber kann nicht implizit verwendet werden.

http://de.php.net/mysql_query
Zitat:
resource mysql_query ( string Anfrage [, resource Verbindungs-Kennung] )
In deinem Skript geht diese für mehrere Datenbank-Verbindungen wichtige Verbindungskennung (Rückgabewert von mysql_connect) verloren. Du musst sie aber explizit speichern und für deine Queries als 2. Argument verwenden.
Zergling-new ist offline   Mit Zitat antworten
Alt 12.01.2006, 12:52  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

abermah ich das denn nicht über:

Code:
$this->connect;
mfG
derTrallala
Timo Trallala ist offline   Mit Zitat antworten
Alt 12.01.2006, 13:03  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Sorry hab den Code unaufmerksam gelesen (vielleicht kannste auch nochma <? und ?> einbauen, fürs highlighten.

Ich sehe gerade du testest es beide male für "localhost", da könnte schon der Fehler liegen, denn
http://de.php.net/mysql_connect
Zitat:
resource mysql_connect ( [string Server [, string Benutzername [, string Benutzerkennwort [, bool neue_Verbindung [, int client_flags]]]]] )
[..]
Für den Fall, dass ein zweiter Aufruf von mysql_connect() mit den gleichen Argumenten erfolgt, wird keine neue Verbindung aufgebaut, sondern die Verbindungs-Kennung der schon bestehenden Verbindung zurückgeliefert. Der Parameter neue_Verbindung beeinflusst dieses Verhalten und mysql_connect() öffnet immer eine neue Verbindung, sogar dann, wenn mysql_connect() zu einem früheren Zeitpunkt mit den gleichen Parametern aufgerufen wurde.
Setz also als 4. mysql_connect Argument ein TRUE.
Zergling-new ist offline   Mit Zitat antworten
Alt 12.01.2006, 13:08  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

o.k. Highlighting getan;

auch new_ink=True schon gemacht!

führt dazu, dass ich keine verbindung zu $db2 bekommen!

mfG
derTrallala
Timo Trallala ist offline   Mit Zitat antworten
Alt 12.01.2006, 13:12  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum? Welche Fehlermeldung kommt denn?
Zergling-new ist offline   Mit Zitat antworten
Alt 12.01.2006, 13:26  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

Fehlermeldung kommt keine?!?!

Allerdings führt :
PHP-Code:
<?
    
function subscribeNewsletter()
    {
    global 
$db2;
     
$sql        ="SELECT * FROM " tbl_wwwsite_nsl " ";
     
$result=$db2->query($sql);
     echo 
mysql_num_rows($result);
          

    }
?>
zu keinem Ergebnis; müsste ungefähr 340 datensätze enthalten

mfG
derTrallala
Timo Trallala ist offline   Mit Zitat antworten
Alt 12.01.2006, 13:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Es heißt "SELECT * FROM tabellenName"
Zergling-new ist offline   Mit Zitat antworten
Alt 12.01.2006, 13:38  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

O.K. Hab ich auch scho verbessert, Danke?

Dies liegt wohl daran, dass mich dass seit gestern beschäftigt!

Aber: Prob fixed! Funktioniert jetzt einwandfrei!

TAUSEND DANK!

mit allerfreundlichsten Grüßen aus dem sonnigen Duisburg

derTrallala
Timo Trallala ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL verbindung TeazY PHP Tipps 2008 2 18.12.2007 14:34
Verbindung zu einem MS SQL Server 2005 FireFIghter PHP-Fortgeschrittene 2 23.10.2007 12:03
Performance externe MySQL Verbindung R4v3r Datenbanken 2 20.08.2007 07:47
Verbindung HTTP-Server MySQL Server über php - genaueres netti Datenbanken 5 11.06.2007 19:04
Verbindung MySQL - Oracle tomson Datenbanken 0 15.09.2006 17:13
Datenbanken von Windows zu Linux ApfeL Server, Hosting und Workstations 1 12.04.2006 20:31
Mehrere Datenbanken mit verschiedenen Benutzernamen ändern Datenbanken 4 16.03.2006 09:16
FTP Verbindung wird abundzu unterbrochen themonk Off-Topic Diskussionen 1 02.01.2006 07:41
persistente MySQL Verbindung und clonen HStev PHP-Fortgeschrittene 16 22.11.2005 13:24
Eine Datenbank - Viele Tabellen oder mehrere Datenbanken? nicobischof Datenbanken 3 20.10.2005 15:36
Verbindung zu einer Datenbank im LAN Datenbanken 11 25.09.2005 12:18
Zwei Datenbanken auslesen PHP Tipps 2005-2 5 09.08.2005 17:05
[Erledigt] Verbindung auf eine Datenbank Datenbanken 5 07.07.2005 20:38
[Erledigt] Mehrere Datenbanken auf verschiedenen Servern Datenbanken 2 15.05.2005 22:28
Daten aus 2 Datenbanken über eine Verbindung Datenbanken 11 28.11.2004 17:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
verbindung zu 2 datenbanken, verbindung zu 2 datenbanken sql, php mehrer datenbank verbindungs, mehre datenbank verbindungen class, verbindung zwei datenbanken sql server, php mssql zwei datenbank-verbindungen, verbindungen zu 2 datenbanken php, php 2 datenbanken result, php 2 datenbanken mit localhost, php 2 datenbanken connect, xtpl class, verbindung zwei datenbanken, sql server 2005 anfrage an mehrere datenbanken, verbindung zu 2 datenbanken php, verbinden von 2 datenbanken im select, http://www.php.de/php-fortgeschrittene/35775-verzweifel-verbindung-zu-2-datenbanken.html, verbindung zu zwei datenbanken, php connect mehrere datenbanken

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.