Call to a member function fetch()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jules Kreutzer

Jules Kreutzer

25/12/2012 20:43:08
Quote Anchor link
hallo,

Ik heb een script gedownload ergens waar volgende code in staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
 function dbRow($query) {
    $q = dbQuery($query);
    return $q->fetch(PDO::FETCH_ASSOC);
}

?>


wanneer ik het script nu uitvoer, krijg ik de volgende error:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Call to a member function fetch() on a non-object in blahblahblah


Ik heb al op google gezocht of ik ergens een of ik ergens een oplossing kan vinden, maar deze vind ik niet.

Hebben jullie misschien een oplossing om dit te verhelpen?

Mvg Jules
 
PHP hulp

PHP hulp

20/04/2024 14:19:13
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

25/12/2012 20:48:31
Quote Anchor link
Gooi dat script maar gelijk in het ronde archief.
Een functie maken voor iets wat al bestaat slaat natuurlijk nergens op.
 
Jules Kreutzer

Jules Kreutzer

25/12/2012 20:51:56
Quote Anchor link
Het staat in het bestand basics.php en in een ander bestand, bv wanneer je ingelogd bent worden die functies aangeroepen. De andere functies werken wel alleen deze niet.

basics.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
session_start();
function
__autoload($name) {
    require $name . '.php';
}
function
dbAll($query,$key='') {
    $q = dbQuery($query);
    $results=array();
    while($r=$q->fetch(PDO::FETCH_ASSOC))$results[]=$r;
    if(!$key)return $results;
    $arr=array();
    foreach($results as $r)$arr[$r[$key]]=$r;
    return $arr;
}
function
dbInit(){
    if(isset($GLOBALS['db']))return $GLOBALS['db'];
    global $DBVARS;
    $db=new PDO('mysql:host='.$DBVARS['hostname'].';dbname='.$DBVARS['db_name'],$DBVARS['username'],$DBVARS['password']);
    $db->query('SET NAMES utf8');
    $db->num_queries=0;
    $GLOBALS['db']=$db;
    return $db;
}
function
dbOne($query, $field='') {
    $r = dbRow($query);
    return $r[$field];
}
function
dbLastInsertId() {
    return dbOne('select last_insert_id() as id','id');
}
function
dbQuery($query){
    $db=dbInit();
    $q=$db->query($query);
    $db->num_queries++;
    return $q;
}
function
dbRow($query) {
    $q = dbQuery($query);
    return $q->fetch(PDO::FETCH_ASSOC);
}

define('SCRIPTBASE', $_SERVER['DOCUMENT_ROOT'] . '/');
require SCRIPTBASE . '.private/config.php';
if(!defined('CONFIG_FILE'))define('CONFIG_FILE',SCRIPTBASE.'.private/config.php');
set_include_path(SCRIPTBASE.'ww.php_classes'.PATH_SEPARATOR.get_include_path());
?>


en de error komt voor wanneer je probeert in te loggen, je word dan doorgestuurd naar login.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
require 'login-libs.php';

login_check_is_email_provided();

// check that the password is provided
if(!isset($_REQUEST['password']) || $_REQUEST['password']==''){
    login_redirect($url,'nopassword');
}


// check that the email/password combination matches a row in the user table
$password=md5($_REQUEST['email'].'|'.$_REQUEST['password']);
$r=dbRow('select * from user_accounts where
    email="'
.addslashes($_REQUEST['email']).'" and
    password="'
.$password.'" and active'
);
if($r==false){
    login_redirect($url,'loginfailed');
}


// success! set the session variable, then redirect
$_SESSION['userdata']=$r;
$groups=json_decode($r['groups']);
$_SESSION['userdata']['groups']=array();
foreach($groups as $g)$_SESSION['userdata']['groups'][$g]=true;
if($r['extras']=='')$r['extras']='[]';
$_SESSION['userdata']['extras']=json_decode($r['extras']);

login_redirect($url);
?>
Gewijzigd op 25/12/2012 20:53:33 door Jules Kreutzer
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

25/12/2012 21:10:41
Quote Anchor link
Ik weet niet waar je dat script vandaan hebt, maar het is gewoon bagger. Stuur het maar direct op kerstvakantie naar de Filistijnen.
Al de functies die daarin gedeclareerd worden heb je al tot je beschikking met PDO.
 
Jules Kreutzer

Jules Kreutzer

25/12/2012 21:12:11
Quote Anchor link
en hoe kan ik het dan het beste oplossen dat ik die fatal error niet meer krijg wanneer ik me probeer in te loggen en wordt doorgestuurd naar login.php?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

25/12/2012 21:34:23
Quote Anchor link
De oplossing is om zelf PHP te leren (vergeef me mijn cynisme op deze 1e kerstdag)
 
Jules Kreutzer

Jules Kreutzer

25/12/2012 23:41:58
Quote Anchor link
Opgelost ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.