• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Fatal error: Call to a member function query() on a non-object

Status
Not open for further replies.

PATrar

New Member
Joined
Jun 11, 2009
Messages
88
Reaction score
0
Mam taki problem z jednym skryptem, a mianowicie nie mogę pobrać żadnych informacji z bazy danych ponieważ wyskakuje taki błąd
PHP:
Fatal error: Call to a member function query() on a non-object in C:/xampp/htdocs/started.php on line 55

O to skrypt:
PHP:
<html>
<head>
  <title>CINTRA WORLD!!</title>
  <meta name="description" content="Wybierz Swiat!" />
  <meta name="author" content="Cintra Team" />
  <meta http-equiv="content-language" content="en" />
  <meta name="keywords" content="evo, hight, exp, tibia, super, ots" />
  <meta name="verify-v1" content="wEFHPlRoQn+5lWVcK9kyNJfrbNd78Z7dhATobg8WKMI=" />

  <link rel="shortcut icon" href="/start/favicon.ico" type="image/x-icon">
  <link rel="icon" href="/start/favicon.ico" type="image/x-icon">

  <link href="/start/landing.css" rel="stylesheet" type="text/css">
 <style type="text/css">
    * html #BoxBottomImage {
      f\ilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='start/1ok.png');
    }
    div[id] #BoxBottomImage {
      background-image: url(start/1ok.png);
    }
  </style>
  <style type="text/css">
    * html #BoxBottomImage2 {
      f\ilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='start/2ok.png');
    }
    div[id] #BoxBottomImage2 {
      background-image: url(start/2ok.png);
    }
  </style>  <style type="text/css">
    * html #BoxBottomImage3 {
      f\ilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='start/3ok.png');
    }
    div[id] #BoxBottomImage3 {
      background-image: url(start/3ok.png);
    }
  </style>

  <script type="text/javascript" >
    var IMAGES="/start";
  </script>
  <script type="text/javascript" src="/start/landing.js"></script>

</head>
<body>
  <div id="ArtworkHelper" style="background-image:url(/start/background-artwork.jpeg);" >
    <div id="BodyContainer" >
      <div id="ContentRow" >
        <div id="ContentColumn" >
          <div id="Content" >
		  
           <div id="PlayersOnline" >
		     </br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>

                 <?PHP
$players_online = $SQL->query('SELECT COUNT(*) FROM `players` WHERE `online` = 1 `worldid` = 1');


					echo 'Players online:  '.$players_online;

		
			?> 

			
              </div>
                 <div id="BoxBottom" >




  
           <a href="http://xxxx"><div id="BoxBottomImage" ></div> </a>  </br></br></br> <a href="xxxxx"><div id="BoxBottomImage2" ></div>  </a>  

 <a href="xxxx"><div id="BoxBottomImage3" ></div> </a> 
   

            </div>
          </div>
        </div>
      </div>
    </div>
 
  </div>

Jeśli ktoś byłby taki miły i powiedział co trzeba zmienić żeby to działało byłbym bardzo wdzięczny
 
Kurcze, mi sie zdaje, ze funkcja query nie jest obiektem klasy, ktora probuje wykonac te funkcje.
 
Code:
$SQL = POT::getInstance()->getDBHandle();

???
 
Jeśli dobrze zrozumiałem to zrobiłem tak:

PHP:
<html>
<head>
  <title>CINTRA WORLD!!</title>
  <meta name="description" content="Wybierz Swiat!" />
  <meta name="author" content="Cintra Team" />
  <meta http-equiv="content-language" content="en" />
  <meta name="keywords" content="evo, hight, exp, tibia, super, ots" />
  <meta name="verify-v1" content="wEFHPlRoQn+5lWVcK9kyNJfrbNd78Z7dhATobg8WKMI=" />

  <link rel="shortcut icon" href="/start/favicon.ico" type="image/x-icon">
  <link rel="icon" href="/start/favicon.ico" type="image/x-icon">

  <link href="/start/landing.css" rel="stylesheet" type="text/css">
 <style type="text/css">
    * html #BoxBottomImage {
      f\ilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='start/1ok.png');
    }
    div[id] #BoxBottomImage {
      background-image: url(start/1ok.png);
    }
  </style>
  <style type="text/css">
    * html #BoxBottomImage2 {
      f\ilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='start/2ok.png');
    }
    div[id] #BoxBottomImage2 {
      background-image: url(start/2ok.png);
    }
  </style>  <style type="text/css">
    * html #BoxBottomImage3 {
      f\ilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='start/3ok.png');
    }
    div[id] #BoxBottomImage3 {
      background-image: url(start/3ok.png);
    }
  </style>

  <script type="text/javascript" >
    var IMAGES="/start";
  </script>
  <script type="text/javascript" src="/start/landing.js"></script>

</head>
<body>
  <div id="ArtworkHelper" style="background-image:url(/start/background-artwork.jpeg);" >
    <div id="BodyContainer" >
      <div id="ContentRow" >
        <div id="ContentColumn" >
          <div id="Content" >
		  
           <div id="PlayersOnline" >
		     </br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>

                 <?PHP
$players_online = $SQL('SELECT COUNT(*) FROM `players` WHERE `online` = 1 `worldid` = 1');
$SQL = POT::getInstance()->getDBHandle();


					echo 'Players online:  / '.$players_online;

		
			?> 

			
              </div>
                 <div id="BoxBottom" >




  
           <a href="http://94.23.246.227/evo"><div id="BoxBottomImage" ></div> </a>  </br></br></br> <a href=""><div id="BoxBottomImage2" ></div>  </a>  

 <a href=""><div id="BoxBottomImage3" ></div> </a> 
   

            </div>
          </div>
        </div>
      </div>
    </div>
 
  </div>

</body>
i wyszło

PHP:
Fatal error: Function name must be a string in C:\xampp\htdocs\started.php on line 55
 
Z tego co widze nigdzie nie tworzysz obiektu klasy POT ani nie inkludujesz samej biblioteki

edit: dodaj na początku:
PHP:
// loads #####POT mainfile#####
include('pot/OTS.php');
// PDO and POT connects to database
$ots = POT::getInstance();
try
{
   $ots->connect(POT::DB_MYSQL, array('host' => 'localhost', 'user' => 'user', 'password' => 'haslo', 'database' => 'baza') );
}
catch(PDOException $error)
{
	    echo 'Database error - can\'t connect to MySQL database';
		exit;
}
 
Ej Kula, zrób sobie oficjalne konto ! :D bo ja nie wiem czy to jest oficjalne :( zrób podpisik on dodaje wiarygodności :peace:
 
Po zrobieniu
PHP:
  <?PHP
				 // loads #####POT mainfile#####
include('pot/OTS.php');
// PDO and POT connects to database
$ots = POT::getInstance();
try
{
   $ots->connect(POT::DB_MYSQL, array('host' => 'localhost', 'user' => 'root', 'password' => 'test', 'database' => 'elo') );
}
catch(PDOException $error)
{
        echo 'Database error - can\'t connect to MySQL database';
        exit;
} 
$players_online = $ots('SELECT COUNT(*) FROM `players` WHERE `online` = 1 `world_id` = 1');



					echo 'Players online:  / '.$players_online;

		
			?>

Wyskakuje

Code:
Fatal error: Function name must be a string in C:\xampp\htdocs\started.php on line 68
 
Code:
$players_online = $ots->getDBHandle()->query("SELECT COUNT(*) FROM `players` WHERE `online` = '1' `world_id` = '1'")->fetchColumn();
Spróbuj tak.
 
Last edited:
Code:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`world_id` = 1' at line 1' in C:\xampp\htdocs\started.php:68 Stack trace: #0 C:\xampp\htdocs\started.php(68): PDO->query('SELECT COUNT(*)...') #1 {main} thrown in C:\xampp\htdocs\started.php on line 68
 
Nie zwróciłem uwagi że zrobiłeś błędy w zapytaniu:
Code:
$players_online = $ots->getDBHandle()->query("SELECT COUNT(*) FROM players WHERE online = '1' AND world_id = '1'")->fetchColumn();
 
Status
Not open for further replies.
Back
Top