php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.02.2005, 08:40  
Gast
 
Beiträge: n/a
Standard ... on a non-object ... in eigener funktion (pear)

moin leutz,
habe mir ne eigene funktion geschrieben und jedesmal wenn ich sie aufrufe bekomme ich folgende fehlermeldung:

Fatal error: Call to a member function on a non-object in /websites/platz/div/sgs/stat/includes/funktionen.php on line 9

zeile 9:

PHP-Code:
<?php
$result 
$db->query($sql);
?>
die pear scripte werden in das script mit der eigenen funktion includiert aber leider hier nix!

bin für jede hilfe dankbar!

mehr code???
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.02.2005, 08:50  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Innerhalb der Funktion ist $db dann wohl nicht bekannt.
Guradia ist offline  
Alt 25.02.2005, 08:55  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

$db ist keine klasse / kein objekt , ein var_dump($db) verschafft dir klarheit.

wo weist du denn $db = new classname; zu? vieleicht ein problem, dass du innerhalb einer funktion arbeitest und vergessen ahst global $db; an den anfang zu setzen?

naja alles nur rumgerate und deshalb bruachen wir ein bisschen mehr Code, sprich den teil des codes wo die variable $db definiert wird und den teil wo dann draufzugegirffen wird.

mfg
robo47
robo47 ist offline  
Alt 25.02.2005, 09:09  
Gast
 
Beiträge: n/a
Standard

also ein var_dump gibt folgendes aus:

object(db_mysql)(25) { ["connection"]=> resource(9) of type (mysql link) ["phptype"]=> string(5) "mysql" ["dbsyntax"]=> string(5) "mysql" ["prepare_tokens"]=> array(0) { } ["prepare_types"]=> array(0) { } ["num_rows"]=> array(0) { } ["transaction_opcount"]=> int(0) ["autocommit"]=> bool(true) ["fetchmode"]=> int(1) ["_db"]=> string(13) "carsten_test1" ["_debug"]=> bool(false) ["_default_error_mode"]=> NULL ["_default_error_options"]=> NULL ["_default_error_handler"]=> string(0) "" ["_error_class"]=> string(8) "DB_Error" ["_expected_errors"]=> array(0) { } ["features"]=> array(4) { ["prepare"]=> bool(false) ["pconnect"]=> bool(true) ["transactions"]=> bool(true) ["limit"]=> string(5) "alter" } ["errorcode_map"]=> array(18) { [1004]=> int(-15) [1005]=> int(-15) [1006]=> int(-15) [1007]=> int(-5) [1008]=> int(-17) [1022]=> int(-5) [1046]=> int(-14) [1048]=> int(-3) [1050]=> int(-5) [1051]=> int(-18) [1054]=> int(-19) [1062]=> int(-5) [1064]=> int(-2) [1100]=> int(-21) [1136]=> int(-22) [1146]=> int(-18) [1216]=> int(-3) [1217]=> int(-3) } ["prepared_queries"]=> NULL ["prepare_maxstmt"]=> int(0) ["last_query"]=> string(0) "" ["fetchmode_object_class"]=> string(8) "stdClass" ["options"]=> array(7) { ["persistent"]=> bool(false) ["ssl"]=> bool(false) ["debug"]=> int(0) ["seqname_format"]=> string(6) "%s_seq" ["autofree"]=> bool(false) ["portability"]=> int(0) ["optimize"]=> string(11) "performance" } ["dbh"]=> NULL ["dsn"]=> array(9) { ["phptype"]=> string(5) "mysql" ["dbsyntax"]=> string(5) "mysql" ["username"]=> string(4) "root" ["password"]=> bool(false) ["protocol"]=> string(3) "tcp" ["hostspec"]=> string(9) "localhost" ["port"]=> bool(false) ["socket"]=> bool(false) ["database"]=> string(13) "carsten_test1" } }


uiuiui viel text!

naja $db ist eine variable aus der pear klasse DB
ich hab davon natürlich keine ahnung aber in der funktion ist $db nicht als global difiniert!
wie mache ich das denn???

hier mal eben schnell die funktion von mir:

PHP-Code:
<?php
function dropdown_spiel($where) {
    if (
$where != "") {
        
$sql "SELECT spiel_id, heim, auswaerts FROM spiel WHERE ".$where." ORDER BY spiel_id";
    }
    else 
$sql "SELECT spiel_id, heim, auswaerts FROM spiel ORDER BY spiel_id";
    
$result $db->query($sql);
    if (
DB::isError($result)) {
        die (
$result->getMessage());
    }
    
$spiel "<option value=\"\">Bitte wählen</option>";
    while(
$row $result->fetchRow(DB_FETCHMODE_ASSOC)){
        
$spiel .=     "
                    <option value=\""
.$row['spiel_id']."\">".$row['heim']." - ".$row['auswaerts']."</option>
                    "
;
    } 
// while
    
return $spiel;
}
?>
 
Alt 25.02.2005, 09:19  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

wo hast du das var_dump gemacht? bestimmt nicht in der funktion. :P hab zwar oben schon geschrieben was du machen musst, aber hier nochmal:

am anfang der funktion musst du

global $db;

schreiben damit innerhalb der funktion die variable erreichbar ist. mal abgesehen davon, ist das hier sinvoll:

f (DB::isError($result)) {

soweit ich weis, kannst du ja bei PEAR mit der db-klasse ohne probs auf mehr als eine instanz zugreifen, daher ist es nicht sonderlich sauber programmiert, wenn du nicht direkt auf die aktuelle instanz zugreifst.

mfg
robo47
robo47 ist offline  
Alt 25.02.2005, 09:23  
Gast
 
Beiträge: n/a
Standard

danke das mit dem global wars!
bisn schatz!
 
 


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Größenbeschränkung bei PEAR SOAP Antwort? Anotherone PHP-Fortgeschrittene 1 13.01.2008 20:32
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
PEAR Package installieren Zergling-new PHP Tipps 2006 6 03.01.2006 21:49
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
Gibt keine Ausgabe aus socke PHP Tipps 2005-2 9 31.08.2005 15:39
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
PEAR Error Object AliceD PHP-Fortgeschrittene 10 02.08.2005 13:37
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
Problem mit eigener Funktion b++ PHP Tipps 2005 10 08.03.2005 15:37
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] Object innerhalb einer XML Parser Funktion deklarieren PHP-Fortgeschrittene 0 10.12.2004 14:40
[Erledigt] SOAP/Client.php: PHP Fatal error: Method SOAP_Client::__call PHP-Fortgeschrittene 6 25.11.2004 09:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
function result_array() on a non-object, pear fatal error: call to a member function write() on a non-object in, object in eigener function aufrugfen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:13 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.