Fatal error: Cannot instantiate non-existent class

  1. kmd

    kmd Thread StarterMacUser Mitglied

    Mitglied seit:
    01.12.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Hi,
    ich habe unter OS X MySQL 4.x installiert. PPHMyAdmin rennt und PHP Seiten ebenso.

    Meine config.php sieht so aus:

    PHP:
    <?php



    # Datenbank-Zugriffsdaten



    $db_host="localhost";

    $db_name="testdb";

    $db_user="kmd";

    $db_kennwort="xxx";

    $db_ms="mysql14";



    # Einstellungen



    $cfg_titel "DB";



    ?>
    Nun bekomme ich folgende Fehlermeldung:

    Fatal error: Cannot instantiate non-existent class: sql_db in /Library/WebServer/Documents/includes/db.php on line 37


    Die db.php sieht so aus:

    PHP:
    <?php







    switch($db_ms)

    {

      case 
    'mysql':

        include(
    'db/mysql.php');

        break;



      case 
    'mysql4':

        include(
    'db/mysql4.php');

        break;



      case 
    'postgres':

        include(
    'db/postgres7.php');

        break;



      case 
    'mssql':

        include(
    'db/mssql.php');

        break;



      case 
    'oracle':

        include(
    'db/oracle.php');

        break;



      case 
    'msaccess':

        include(
    'db/msaccess.php');

        break;



      case 
    'mssql-odbc':

        include(
    'db/mssql-odbc.php');

        break;

    }



    // Make the database connection.

    $db = new sql_db($db_host$db_user$db_kennwort$db_namefalse);

    if(!
    $db->db_connect_id)

    {

       die(
    "Could not connect to the database");

    }

    ?>
    änder in in der config.php "mysql14" in "mysql" bekomme ich auch keine Verbindung zur DB.

    Jemand ne Idee woran es liegen kann?
    Vielen Dank im Voraus!!!
     
  2. falkgottschalk

    falkgottschalkMacUser Mitglied

    Mitglied seit:
    22.08.2005
    Beiträge:
    24.005
    Zustimmungen:
    1.599
    Oben steht bei Dir
    PHP:
    $db_ms="mysql14"
    mit 2 "l".

    Unten steht nur ein "l":
    PHP:
    case 'mysql4'

        include(
    'db/mysql4.php'); 

        break; 
    Ob php so kleinlich ist? :D :D :D
     
    falkgottschalk, 02.12.2006
  3. kmd

    kmd Thread StarterMacUser Mitglied

    Mitglied seit:
    01.12.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Vielen Dank (hätte ich ja auch sehen müssen!!!:eek: ) ... das hat geholfen, jedoch zu einerm weiteren Fehler geführt:

    Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (2) in /Library/WebServer/Documents/db/mysql4.php on line 48
    Could not connect to the database

    Die mysql4.php sieht so aus:

    PHP:
    <?php


    if(!defined("SQL_LAYER"))
    {

    define("SQL_LAYER","mysql4");

    class 
    sql_db
    {

        var 
    $db_connect_id;
        var 
    $query_result;
        var 
    $row = array();
        var 
    $rowset = array();
        var 
    $num_queries 0;
        var 
    $in_transaction 0;

        
    //
        // Constructor
        //
        
    function sql_db($sqlserver$sqluser$sqlpassword$database$persistency true)
        {
            
    $this->persistency $persistency;
            
    $this->user $sqluser;
            
    $this->password $sqlpassword;
            
    $this->server $sqlserver;
            
    $this->dbname $database;

            
    $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server$this->user$this->password) : mysql_connect($this->server$this->user$this->password);

            if( 
    $this->db_connect_id )
            {
                if( 
    $database != "" )
                {
                    
    $this->dbname $database;
                    
    $dbselect mysql_select_db($this->dbname);

                    if( !
    $dbselect )
                    {
                        
    mysql_close($this->db_connect_id);
                        
    $this->db_connect_id $dbselect;
                    }
                }

                return 
    $this->db_connect_id;
            }
            else
            {
                return 
    false;
            }
        }

        
    //
        // Other base methods
        //
        
    function sql_close()
        {
            if( 
    $this->db_connect_id )
            {
                
    //
                // Commit any remaining transactions
                //
                
    if( $this->in_transaction )
                {
                    
    mysql_query("COMMIT"$this->db_connect_id);
                }

                return 
    mysql_close($this->db_connect_id);
            }
            else
            {
                return 
    false;
            }
        }

        
    //
        // Base query method
        //
        
    function sql_query($query ""$transaction FALSE)
        {
            
    //
            // Remove any pre-existing queries
            //
            
    unset($this->query_result);

            if( 
    $query != "" )
            {
                
    $this->num_queries++;
                if( 
    $transaction == BEGIN_TRANSACTION && !$this->in_transaction )
                {
                    
    $result mysql_query("BEGIN"$this->db_connect_id);
                    if(!
    $result)
                    {
                        return 
    false;
                    }
                    
    $this->in_transaction TRUE;
                }

                
    $this->query_result mysql_query($query$this->db_connect_id);
            }
            else
            {
                if( 
    $transaction == END_TRANSACTION && $this->in_transaction )
                {
                    
    $result mysql_query("COMMIT"$this->db_connect_id);
                }
            }

            if( 
    $this->query_result )
            {
                unset(
    $this->row[$this->query_result]);
                unset(
    $this->rowset[$this->query_result]);

                if( 
    $transaction == END_TRANSACTION && $this->in_transaction )
                {
                    
    $this->in_transaction FALSE;

                    if ( !
    mysql_query("COMMIT"$this->db_connect_id) )
                    {
                        
    mysql_query("ROLLBACK"$this->db_connect_id);
                        return 
    false;
                    }
                }
                
                return 
    $this->query_result;
            }
            else
            {
                if( 
    $this->in_transaction )
                {
                    
    mysql_query("ROLLBACK"$this->db_connect_id);
                    
    $this->in_transaction FALSE;
                }
                return 
    false;
            }
        }

        
    //
        // Other query methods
        //
        
    function sql_numrows($query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            return ( 
    $query_id ) ? mysql_num_rows($query_id) : false;
        }

        function 
    sql_affectedrows()
        {
            return ( 
    $this->db_connect_id ) ? mysql_affected_rows($this->db_connect_id) : false;
        }

        function 
    sql_numfields($query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            return ( 
    $query_id ) ? mysql_num_fields($query_id) : false;
        }

        function 
    sql_fieldname($offset$query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            return ( 
    $query_id ) ? mysql_field_name($query_id$offset) : false;
        }

        function 
    sql_fieldtype($offset$query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            return ( 
    $query_id ) ? mysql_field_type($query_id$offset) : false;
        }

        function 
    sql_fetchrow($query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            if( 
    $query_id )
            {
                
    $this->row[$query_id] = mysql_fetch_array($query_idMYSQL_ASSOC);
                return 
    $this->row[$query_id];
            }
            else
            {
                return 
    false;
            }
        }

        function 
    sql_fetchrowset($query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            if( 
    $query_id )
            {
                unset(
    $this->rowset[$query_id]);
                unset(
    $this->row[$query_id]);

                while(
    $this->rowset[$query_id] = mysql_fetch_array($query_idMYSQL_ASSOC))
                {
                    
    $result[] = $this->rowset[$query_id];
                }

                return 
    $result;
            }
            else
            {
                return 
    false;
            }
        }

        function 
    sql_fetchfield($field$rownum = -1$query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            if( 
    $query_id )
            {
                if( 
    $rownum > -)
                {
                    
    $result mysql_result($query_id$rownum$field);
                }
                else
                {
                    if( empty(
    $this->row[$query_id]) && empty($this->rowset[$query_id]) )
                    {
                        if( 
    $this->sql_fetchrow() )
                        {
                            
    $result $this->row[$query_id][$field];
                        }
                    }
                    else
                    {
                        if( 
    $this->rowset[$query_id] )
                        {
                            
    $result $this->rowset[$query_id][$field];
                        }
                        else if( 
    $this->row[$query_id] )
                        {
                            
    $result $this->row[$query_id][$field];
                        }
                    }
                }

                return 
    $result;
            }
            else
            {
                return 
    false;
            }
        }

        function 
    sql_rowseek($rownum$query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            return ( 
    $query_id ) ? mysql_data_seek($query_id$rownum) : false;
        }

        function 
    sql_nextid()
        {
            return ( 
    $this->db_connect_id ) ? mysql_insert_id($this->db_connect_id) : false;
        }

        function 
    sql_freeresult($query_id 0)
        {
            if( !
    $query_id )
            {
                
    $query_id $this->query_result;
            }

            if ( 
    $query_id )
            {
                unset(
    $this->row[$query_id]);
                unset(
    $this->rowset[$query_id]);

                
    mysql_free_result($query_id);

                return 
    true;
            }
            else
            {
                return 
    false;
            }
        }

        function 
    sql_error()
        {
            
    $result['message'] = mysql_error($this->db_connect_id);
            
    $result['code'] = mysql_errno($this->db_connect_id);

            return 
    $result;
        }

    // class sql_db

    // if ... define

    ?>
    Wovon in Zeile 48 das hier steht:

    PHP:
            $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server$this->user$this->password) : mysql_connect($this->server$this->user$this->password);
    Für eine weitere Hilfestellung wäre ich dankbar!! PHP selbst klappt, nur die ganze Konfigurierung muss ich noch lernen :-/
     
  4. oneOeight

    oneOeightMacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.174
    Zustimmungen:
    3.889
    guck mal in die my.cnf, ob du einen pfad zu einem socket angegeben hast und der nicht richtig ist...
    bzw versuch mal beim connect den port anzugeben....
     
    oneOeight, 02.12.2006
  5. kmd

    kmd Thread StarterMacUser Mitglied

    Mitglied seit:
    01.12.2006
    Beiträge:
    4
    Zustimmungen:
    0
    $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';

    in der config.inc.php meinste?
     
  6. oneOeight

    oneOeightMacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.174
    Zustimmungen:
    3.889
    da halt wo du den socket definiert hast...
     
    oneOeight, 02.12.2006
  7. kmd

    kmd Thread StarterMacUser Mitglied

    Mitglied seit:
    01.12.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Wo muss das geändert werden?
    In der config von meiner Webseite, die die DB abruft, in der PHPMyAdmin Config?

    Wie gesagt, mit dem Setup habe ich mich noch nie auseinandergesetzt.

    In meiner Seiten-config.php habe ich lediglich

    PHP:
    <?php



    # Datenbank-Zugriffsdaten



    $db_host="localhost";

    $db_name="testdb";

    $db_user="kmd";

    $db_kennwort="xxx";

    $db_ms="mysql4";



    # Einstellungen
    $cfg_titel "DB";



    ?>
    zu stehen....
     
  8. oneOeight

    oneOeightMacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.174
    Zustimmungen:
    3.889
    lies einfach mal wie man einen mysql connect macht in php ;)
    entweder korrigierst du mal die socket angabe in der mysql my.cnf oder in deiner php config (wo immer du das auch setzt) oder du sagst einfach localhost:3306 , damit der nicht den socket benutzt...
     
    oneOeight, 02.12.2006
Die Seite wird geladen...
Ähnliche Themen - Fatal error Cannot
  1. beatles
    Antworten:
    4
    Aufrufe:
    444
  2. maceis
    Antworten:
    8
    Aufrufe:
    2.646
    Olivetti
    03.12.2012
  3. noiseless
    Antworten:
    1
    Aufrufe:
    1.070
  4. pepepy
    Antworten:
    10
    Aufrufe:
    1.437
  5. talla
    Antworten:
    4
    Aufrufe:
    4.613