2015-11-12 3 views
0

У меня проблема с моим кодом php, я прочитал много ответов, но я не нашел ответа для меня. У меня есть два файла: db_connect.phpЗвонок на неопределенный метод DB_CONNECT :: query()

<?php 

/** 
* A class file to connect to database 
*/ 
class DB_CONNECT { 

// constructor 
function __construct() { 
    // connecting to database 
    $this->connect(); 
} 

// destructor 
function __destruct() { 
    // closing db connection 
    $this->close(); 
} 

/** 
* Function to connect with database 
*/ 
function connect() { 
    // import database connection variables 
    require_once __DIR__ . '/config.php'; 

    // Connecting to mysql database 
$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE); 


    // Selecing database 
    $mysqli ->select_db(DB_DATABASE); 

    // returing connection cursor 
    return $mysqli; 
} 



/** 
* Function to close db connection 
*/ 
function close() { 
    // closing db connection 
    mysql_close(); 
$mysqli->close(); 
} 

} 

?> 

и get_courses_details.php

<?php 

/* 
* Following code will list all the products 
*/ 



// array for JSON response 
$response = array(); 

// include db connect class 
require_once __DIR__ . '/db_connect.php'; 

// connecting to db 
$db = new DB_CONNECT(); 

// get all products from products table 
$result = $db -> query("SELECT * FROM corsi"); 

// check for empty result 
if (mysql_num_rows($result) > 0) { 
// looping through all results 
// products node 
$response["corsi"] = array(); 

while ($row = mysql_fetch_array($result)) { 
    // temp user array 
    $corsi = array(); 
    $corsi ["corso_id"] = $row["corso_id"]; 
    $corsi ["corso_nome"] = $row["corso_nome"]; 


    // push single product into final response array 
    array_push($response["corsi"], $corsi); 
} 
// success 
$response["success"] = 1; 

// echoing JSON response 
echo json_encode($response); 
} else { 
// no products found 
$response["success"] = 0; 
$response["message"] = "No courses found"; 

// echo no users JSON 
echo json_encode($response); 
} 
?> 

, но когда я пытаюсь запустить его отображения мне это сообщение: Фатальная ошибка: Вызов неопределенной метод DB_CONNECT :: query() в get_courses_details.php в строке 19

Знаете ли вы, как я могу это исправить?

+2

В вашем классе 'DB_CONNECT' нет функции' query() '. –

+0

... и не подключаться до запроса ... это не сработает. – c4pricorn

ответ

0

Вы создаете новый объект класса с использованием $db = new DB_CONNECT();. Затем после того, как вы попытаетесь запустить $result = $db -> query("SELECT * FROM corsi");, но возвращает синтаксическую ошибку, поскольку в вашем объекте класса нет метода query().

То, что вы хотите сделать, это сделать общественную собственность и определить это в методе connect(), например:

class DB_CONNECT { 
    public $sth; 

    ... 

    public function connect() { 
     ... 

     $this->sth = $mysqli; 
    } 
} 

Теперь вы можете использовать $db->sth->query() как $db->sth ваш объект MySQL в настоящее время.

Смежные вопросы