Log in

View Full Version : Fatal error: Call to a member function query_first_slave() on a non-object


Pc 1203
08-31-2007, 01:13 AM
Hello All,
I got this:


Fatal error: Call to a member function query_first_slave() on a non-object in /home/penguink/public_html/forums/includes/functions.php on line 1178

in this code:


<?php
function pk_commentsystem(){
$curdir = getcwd ();
chdir('/home/penguink/public_html/forums');
require_once('/home/penguink/public_html/forums/global.php');
chdir ($curdir);

If ($vbulletin->userinfo['userid']!=0)
{
} else {
echo "Please Login, <a href=\"login.php\">here</a>";
exit();
}
$ip = $_SERVER['REMOTE_ADDR'];
echo "<TABLE BORDER=1 FRAME=BOX RULES=NONE>\n";
echo "<form action=\"process.php\" method=\"post\">\n";
echo "Name: ";
echo $vbulletin->userinfo['username'];
echo "<input type=\"hidden\" name=\"username\" value=\"";
echo $vbulletin->userinfo['username'];
echo "\"/><br />\n";
echo "<input type=\"hidden\" name=\"ip\" value=\"$ip\"><br />\n";
echo "<input type=\"hidden\" name=\"postid\" value=\"$postid\"><br />\n";
echo "Email (Not Shown): <input name=\"email\" value=\"\" type=\"text\" /><br />\n
Title: <input name=\"title\" value=\"\" type=\"text\" /><br />\n
Comment: (Smilies: :) <img src=\"images/smilies/simile.png\"> 8) <img src=\"images/smilies/Cool.png\"> :( <img src=\"images/smilies/sad.png\"><br />\n
<textarea cols=\"40\" id=\"comment\" rows=\"5\" name=\"comment\"></textarea><br />\n
<input type=\"submit\" />\n</form></table>";
}
function pk_comments(){
include('pktutorialz_config.php');

mysql_connect("localhost", "$database_user", "$database_pass") or die(mysql_error());
mysql_select_db("$database_db") or die(mysql_error());

$query = "SELECT * FROM pk_commentz WHERE postid='$postid'";

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){
echo $row['title'];
echo "<br />\n";
echo $row['comment'];
echo "\n<hr>";
}
}
?>
<?php
$postid = $_GET['id'];
pk_commentsystem();
echo "<hr>";
pk_comments();
?>
Any help?

- Pc1203

Eikinskjaldi
08-31-2007, 02:02 AM
Whattya doing mate? Why the mish mash of vb and non vb related calls?

You have included global.php so you have access to $vbulletin->db. Dont go making another connection. Also you are making a connection but not assigning it to a variable

replace this...
If ($vbulletin->userinfo['userid']!=0)
{
} else {
echo "Please Login, <a href=\"login.php\">here</a>";
exit();
}
with
If (!$vbulletin->userinfo['userid'])
print_no_permission();

get rid of this
mysql_connect("localhost", "$database_user", "$database_pass") or die(mysql_error());
mysql_select_db("$database_db") or die(mysql_error());

replace this
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

with this
$result = $vbulletin->db->query_read($query);

while($row = $vbulletin->db->fetch_array($result)){

Pc 1203
08-31-2007, 02:51 AM
Whattya doing mate? Why the mish mash of vb and non vb related calls?

You have included global.php so you have access to $vbulletin->db. Dont go making another connection. Also you are making a connection but not assigning it to a variable

replace this...
If ($vbulletin->userinfo['userid']!=0)
{
} else {
echo "Please Login, <a href=\"login.php\">here</a>";
exit();
}
with
If (!$vbulletin->userinfo['userid'])
print_no_permission();


get rid of this
mysql_connect("localhost", "$database_user", "$database_pass") or die(mysql_error());
mysql_select_db("$database_db") or die(mysql_error());

replace this
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

with this
$result = $vbulletin->db->query_read($query);

while($row = $vbulletin->db->fetch_array($result)){

I'm trying to make a tutorial system for my site :erm: The code you saw is development code and I would clean it up when it works. Anyway, thanks, will try :D

- Pc1203

Pc 1203
09-01-2007, 03:54 AM
Bump. Any help? I'm currently using a DIFFERENT database from my forums.

- Pc1203

Eikinskjaldi
09-01-2007, 05:34 AM
I answered the question mate. You are making a db connection and not assigning it to a varibale.

If you want to access a different database, just prefix the table with the database name

select otherdatabase.table.field...