0

以下のコードについて質問があります。1 つのアイテム (この場合はストリート) を選択したい場合、すべてがデバッグ モードでエラーなく動作します。(私はメッセージを生成するためにAJAXを使用しています)

public function placeAvailable()
    {
        //open connectie naar database
        include("Connection.php"); 

        $sSql= "select Street from tblPlaces
                where Street = '".$this->m_sStreet."'";

        $vResult=$mysqli->query($sSql);
        if($vResult->num_rows>0)
        {
            return(false);  
        }
        else
        {
            return(true);
        }   
        $mysqli->close();   
    }

選択クエリに追加のパラメーターを追加したいときにエラーが発生しました(通知: 行 86 の /Applications/MAMP/htdocs/foodsquare/assets/classes/places.class.php で非オブジェクトのプロパティを取得しようとしています)

$vResult=$mysqli->query($sSql);
        if($vResult->num_rows>0)

私が追加する追加のパラメーターは次のとおりです。

$sSql= "select Street from tblPlaces
                where Street = '".$this->m_sStreet."' AND where HouseNumber = '".$this->m_sHouseNumber."'";

Josh ここでコード全体を見ることができます

<?php

class Places {

    private $m_sName;
    private $m_sStreet;
    private $m_sHouseNumber;
    private $m_sCity;
    private $m_sCategory;

    public function __set($p_sProperty, $p_vValue) {
        switch($p_sProperty) {
            case "Name" :
                $this -> m_sName = $p_vValue;
                break;
            case "Street" :
                $this -> m_sStreet = $p_vValue;
                break;
            case "HouseNumber" :
                $this -> m_sHouseNumber= $p_vValue;
                break;
            case "City" :
                $this -> m_sCity = $p_vValue;
                break;
            case "Category" :
                $this -> m_sCategory = $p_vValue;
                break;
        }
    }

    public function __get($p_sProperty) {
        $vResult = null;
        switch($p_sProperty) {
            case "Name" :
                $vResult = $this -> m_sName;
                break;
            case "Street" :
                $vResult = $this -> m_sStreet;
                break;
            case "HouseNumber" :
                $vResult = $this -> m_sHouseNumber;
                break;
            case "City" :
                $vResult = $this -> m_sCity;
                break;
            case "Category" :
                $vResult = $this -> m_sCategory;
                break;
        }
        return $vResult;
    }

    public function addPlaces() 
    {
        include_once("connection.php");
            $sSql = "INSERT INTO tblPlaces
                (Name, 
                Street, 
                HouseNumber, 
                City, 
                Category) 
                VALUES 
                ('" . $mysqli -> real_escape_string($this -> m_sName) . "', 
                '" . $mysqli -> real_escape_string($this -> m_sStreet) . "', 
                '" . $mysqli -> real_escape_string($this -> m_sHouseNumber) . "', 
                '" . $mysqli -> real_escape_string($this -> m_sCity) . "', 
                '" . $mysqli -> real_escape_string($this -> m_sCategory) . "');";

        if (!$mysqli -> query($sSql))
        {
            throw new Exception("Er is iets mis gelopen bij het toevoegen van een plaats");
        }

    }

    public function placeAvailable()
    {
        //open connectie naar database
        include("Connection.php");
        global $mysqli;


        //sql query selecteert straat uit tblplaces waar de straat gelijk is aan het inputveld street uit het formulier
        $sSql= "select Street from tblPlaces
                where Street = '".$this->m_sStreet."' AND where HouseNumber = '".$this->m_sHouseNumber."'";

        $vResult=$mysqli->query($sSql);
        if($vResult->num_rows>0)
        {
            //Street (place) is al in gebruik
            return(false);  
        }
        else
        {
            //Hij is nog niet in gebruik
            return(true);
        }
        //database sluiten  
        $mysqli->close();   
    }
}
?>
4

1 に答える 1

0

を定義することはありません$mysqli。接続を作成する必要があります。

あなたの中にある場合Connection.phpは、次を追加する必要があります。

global $mysqli;

インクルード後、クエリの前。

このエラーは、$mysqliがオブジェクトではなく、そのようなプロパティを持たず、プロパティが であることを意味しますquery($data)

于 2012-05-04T21:00:45.863 に答える