Error:Trying to get property of non-object

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Bollie Zwollie

Bollie Zwollie

30/12/2017 23:02:17
Quote Anchor link
Goedenavond,

Ik krijg de volgende error en ik kan de fout niet vinden. Zou iemand eens kunnen kijken en mij dan uitleggen wat ik fout doe?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$sql
= "SELECT site_url from sites WHERE site_url='".$db->escape_string($site_url);
        $result = $db->query($sql);
            if ( $result->num_rows >= 1){
                    $r = array('status'=> 'error', 'text'=>'The URL is already used');
                    debug($r,config::debug);
                }

?>
Gewijzigd op 30/12/2017 23:02:55 door Bollie Zwollie
 
PHP hulp

PHP hulp

25/11/2024 09:11:46
 
- Ariën  -
Beheerder

- Ariën -

30/12/2017 23:11:37
Quote Anchor link
Kan je vermelden welke error het precies is, en waar die heen verwijst?
 
Bollie Zwollie

Bollie Zwollie

30/12/2017 23:14:46
Quote Anchor link
Notice: Trying to get property of non-object in C:\xampp\htdocs\local-dev\controller\ajax.php on line 1805

Notice: Trying to get property of non-object in C:\xampp\htdocs\local-dev\controller\ajax.php on line 1818

Notice: Trying to get property of non-object in C:\xampp\htdocs\local-dev\controller\ajax.php on line 1829
{"status":"success","text":"update succesvol"}

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
if (isset($_POST['sites_cu'])){

if($_SESSION['role'] == 'admin' or $_SESSION['role'] == 'moderator'){

    $site_id = trim($_POST['site_id']);
    $site_name = trim($_POST['site_name']);
    $site_url = trim($_POST['site_url']);
    $site_state = $_POST['site_state'];
    $site_owner = trim($_POST['site_owner']);


        $sql= "SELECT site_name from sites WHERE site_name='".$db->escape_string($site_name);
        $result = $db->query($sql);
            if ( $result->num_rows >= 1){
        //$num_rows = mysqli_num_rows($result);
        //var_dump($result);
        //die();


                    $r = array('status'=> 'error', 'text'=>'The sitename is already used');
                    debug($r,config::debug);
                }




        $sql= "SELECT site_url from sites WHERE site_url='".$db->escape_string($site_url);
        $result = $db->query($sql);
            if ( $result->num_rows >= 1){
                    $r = array('status'=> 'error', 'text'=>'The URL is already used');
                    debug($r,config::debug);
                }


        $sql= "SELECT site_state from sites WHERE site_state='".$db->escape_string($site_state);
        $result = $db->query($sql);
            

        $sql= "SELECT site_owner from sites WHERE site_owner='".$db->escape_string($site_owner);
        $result = $db->query($sql);
            if ( $result->num_rows >= 1){
                    $r = array('status'=> 'error', 'text'=>'The owner is already used');
                    debug($r,config::debug);
                }

    

     if ($_SESSION['role'] != 'moderator'){

     /* admin can do everything */
     $site_state = trim($_POST['site_state']);
        if ($site_id ==''){
                $sql= "INSERT INTO sites (site_id, site_name, site_url, site_state, site_owner) VALUES ('".$db->escape_string($site_id)."', ".$db->escape_string($site_name).", '".$db->escape_string($site_url)."', '".$db->escape_string($site_state)."', '".$db->escape_string($site_owner)."'";

        }
else{
                $sql= "UPDATE sites SET
                `site_id`= '"
.$db->escape_string($site_id)."',
                `site_name`= '"
.$db->escape_string($site_name)."',
                `site_url`= '"
.$db->escape_string($site_url)."',
                `site_state`= '"
.$db->escape_string($site_state)."',
                `site_owner`= '"
.$db->escape_string($site_owner)."'
                WHERE site_id ="
.$site_id;
        }
    }


        if ($db->query($sql))
        $r = array('status'=> 'success', 'text'=>'update succesvol');
        else
        $r = array('status'=> 'error', 'text'=>'er is een fout opgetreden'.$db->error);

    }

            debug($r,config::debug);


}

?>
 
- Ariën  -
Beheerder

- Ariën -

30/12/2017 23:18:19
Quote Anchor link
Waar komt $db vandaan?
 
Bollie Zwollie

Bollie Zwollie

30/12/2017 23:20:16
Quote Anchor link
Die komt uit config.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$db = new mysqli($config['db_host'], $config['db_user'], $config['db_password'], $config['db_name']);


en die staat op deze page included. Andere dingen werken wel
 
- Ariën  -
Beheerder

- Ariën -

30/12/2017 23:24:09
Quote Anchor link
Een instance hoort eigenlijk niet in een config, hé ;-)

je hebt ook foutafhandeling met $db->connect_errno, mag ik hopen?
 
Bollie Zwollie

Bollie Zwollie

30/12/2017 23:26:59
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$db
= new mysqli($config['db_host'], $config['db_user'], $config['db_password'], $config['db_name']);

if(!$db){
    die('Unable to connect to database [' . $db->connect_error . ']');
}

?>


- Ariën - op 30/12/2017 23:24:09:
Een instance hoort eigenlijk niet in een config, hé ;-)


Ik snap niet precies wat je hiermee bedoelt. Dit script heb ik ooit een paar jaar geleden gekocht. En nu wil ik het zelf onder de knie krijgen en probeer er daarom wat bij in te bouwen.
 
- Ariën  -
Beheerder

- Ariën -

30/12/2017 23:31:34
Quote Anchor link
Een config is hoofdzakelijk bedoeld voor configuratie, en niet voor classes die je inlaadt. ;-)

In je ajax.php wordt ook je instance ingeladen?
 
Bollie Zwollie

Bollie Zwollie

30/12/2017 23:33:07
Quote Anchor link
Ja die word daar gewoon ingeladen.

Lijkt erop dat num_rows overschreven word.
Gewijzigd op 30/12/2017 23:33:38 door Bollie Zwollie
 
- Ariën  -
Beheerder

- Ariën -

30/12/2017 23:36:29
Quote Anchor link
Zullen we het op $db->real_escape_string houden?
 
Bollie Zwollie

Bollie Zwollie

30/12/2017 23:42:45
Quote Anchor link
En hoe ga ik daar precies achter komen
 
- Ariën  -
Beheerder

- Ariën -

30/12/2017 23:44:02
Quote Anchor link
Euh?

Kijk gewoon eens goed, en met name naar het vetgedrukte, en wat jij hebt ;-)
Gewijzigd op 30/12/2017 23:44:27 door - Ariën -
 
Bollie Zwollie

Bollie Zwollie

30/12/2017 23:50:26
Quote Anchor link
Ach het is al laat. Heel erg bedankt voor het snelle antwoord.

Fijne jaarwisseling :)
 
- Ariën  -
Beheerder

- Ariën -

30/12/2017 23:54:26
Quote Anchor link
/me geeft koffie en een paar oliebollen :-)

Jij ook een fijne jaarwisseling!
 



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.