2014-12-26 21 views
1

Ниже приведены файлы, которые im использует (пытается) для извлечения информации из БД, но это дает мне ошибку.Ошибка базы данных базы данных PHP

Файл конфигурации:

define("DBHOST", "127.0.0.1"); 
define("DBUSER", "root"); 
define("DBPASS", "root"); 
define("DBNAME", "test"); 
define("DBPORT", "3306"); 

DB Класс:

class Database{ 

    public function __contruct(){ 
     $con = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME, DBPORT); 

     if (!$con){ 
      die("Error connecting to database"); 
     } 
     else{ 
      $this->con = $con; 
     } 
    } 

    function SimpleQuery(){ 
     $query="SELECT * FROM accounts"; 
     $array = $this->con->query($query); 
     while ($fields = $array->fetch_array(MYSQL_ASSOC)){ 
      $values[] = $fields; 
     } 
     return $values; 
    } 
} 

Индекс файла:

require ("config.php"); 
require ("database.php"); 

$db = new Database(); 

echo $rows = $db->SimpleQuery(); 

дает мне эту ошибку:

Fatal error: Call to a member function query() on a non-object in database.php 
+1

Я думаю, вы должны объявить $ con внутри класса. http://php.net/manual/en/language.oop5.properties.php –

+0

не те вещи работают :( – Phentom

+0

@Phentom это опечатка. У вас есть '__contruct' вместо' __construct'. Кроме того, вы должны проверить для ошибок соединения с использованием '$ this-> con> connect_errors' (дает более подробную информацию о том, почему соединение не удалось). – Bjorn

ответ

0

у вас есть 2 полу двоеточие в CON = утверждение класса DB

+0

ошибка копирования, мой плохой – Phentom

0

попробовать это:

DB Класс:

class Database{ 

    public function __construct(){ 
         //^problem here 
     $con = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME, DBPORT); 

     if (!$con){ 
      die("Error connecting to database"); 
     } 
     else{ 
      $this->con = $con; 
     } 
    } 

    function SimpleQuery(){ 
     $query="SELECT * FROM accounts"; 
     $array = $this->con->query($query); 
     while ($fields = $array->fetch_array(MYSQL_ASSOC)){ 
      $values[] = $fields; 
     } 
     return $values; 
    } 
} 

индексный файл:

<?php 
//error_reporting(E_ALL); 
//ini_set('display_errors',1); 
include("submit.php"); 

$db = new Database(); 
$rows = $db->SimpleQuery(); 
print_r($rows); 
+0

не работает = S – Phentom

+0

@Phentom попробуйте обновление. –

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