Jump to content

fetch_row()


rockstarrem

Recommended Posts

Hello,

 

I'm having a really big problem that I can't figure out. Basically, my first code snippet works fine, it gets the navigation from the database with no problem. But, when I'm trying to get another table from the database, I get this:

 

Fatal error: Call to a member function fetch_row() on a non-object in C:\wamp\www\domenicf.com\pages\762134.php on line 29

 

The navigation fetches fine, but the "pagecontent" doesn't. Here's my code.

 

<html> 
<head>  
<title> </title> 
<link href='../css/index.css' type='text/css' rel='stylsheet' /> 
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> 
</head> 
<body> 
<div id='banner' /> 
</div> 
<div align='center' id='nav' /> 
<?php 
$mysqli = new mysqli(); 
$mysqli->connect('localhost', 'root', '', 'jesus'); 
error_reporting(E_ALL);
$query = 'SELECT name, url FROM navigation ORDER by id'; 
$result = $mysqli->query($query, MYSQLI_STORE_RESULT); 
while(list($name, $url) = $result->fetch_row()) 
printf("<a href='%s'>%s</a> | ", $url, $name); 
$result->close();
?> 
</div> 
<div id='content' /> 
<?php 
$mysqli = new mysqli(); 
$mysqli->connect('localhost', 'root', '', 'jesus'); 
error_reporting(E_ALL);
$newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; 
$result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); 
while(list($id, $pcontent) = $result2->fetch_row())
printf("%s %s", $id, $pcontent); 
if ($mysqli->errno) {
printf("Unable to connect to the database:<br /> %s",
$mysqli->error);
exit();
}
$result2->close();
?> 
</div> 
</body> 
</html> 

 

Thanks!

Link to comment
https://forums.phpfreaks.com/topic/191530-fetch_row/
Share on other sites

U could try print mysql error after executing query. Something like this

 

//bla bla bla

$newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; 
$result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT);
echo mysql_error();

//rest part of the code

 

any errors showed up?

Link to comment
https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1009823
Share on other sites

U could try print mysql error after executing query. Something like this

 

//bla bla bla

$newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; 
$result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT);
echo mysql_error();

//rest part of the code

 

any errors showed up?

 

Nope, no errors.

Link to comment
https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010041
Share on other sites

mysql_error() has nothing to do with using the mysqli OOP. You would need to use $mysqli->error

 

$mysqli->error(); returns this:

 

 

Fatal error: Call to undefined method mysqli::error() in C:\wamp\www\domenicf.com\test.php on line 7

 

<?php
//bla bla bla
$mysqli = new mysqli();
$mysqli->connect("localhost", "root", "", "jesus");
$newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; 
$result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT);
echo $mysqli->error();

//rest part of the code
?>

Link to comment
https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010049
Share on other sites

I can't see concrete mistake in your code(or maybe I am blind), the way I would search for problem I would try then for example

$result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); 
$result2->fetch_row();
echo $mysqli->error;

//...

or u could try execute your query 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id' via phpMyAdmin(or some other tool) and see what result is

 

Anyway table name `pages_sadasdasd` is realy suspicious couse it looks like random s*it and it's hard to beleave that some CMS names tables like this... plus name of table `navigation` looks pretty normal and self explanatory.

Link to comment
https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010050
Share on other sites

I can't see concrete mistake in your code(or maybe I am blind), the way I would search for problem I would try then for example

$result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); 
$result2->fetch_row();
echo $mysqli->error;

//...

or u could try execute your query 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id' via phpMyAdmin(or some other tool) and see what result is

 

Anyway table name `pages_sadasdasd` is realy suspicious couse it looks like random s*it and it's hard to beleave that some CMS names tables like this... plus name of table `navigation` looks pretty normal and self explanatory.

 

I'll explain...

 

The CMS takes user input, so if the page name is "sadasdasd" it will create a table "pages_sadasdasd".

 

Edit: Epic failure. I sincerely thought it wasn't a MySQL problem, but the column was "pagecontent" instead of "postcontent". Sorry :(

Link to comment
https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010183
Share on other sites

I dont know how much percently u are sure that it's not MySQL problem but what i see it's exactly this(course I may be wrong)

 

Here how it goes:

Error says "Call to a member function fetch_row() on a non-object"

That means that variable $result2 is not a object and it doesn't have method fetch_row() (also it doesnt have any other methods/properties since $result2 is not object)

Ok now let's look how and where we get $result2?

By $mysqli->query($newquery, MYSQLI_STORE_RESULT);

Since code above with almost exact logics worked fine I know that $mysqli->query returns object that u can fetch and work with on success.

But in this case we have failure and only culprit (that I can think of)here is your sql 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'.

 

I dont know what wrong with sql is but most possibe wrong field names,wrong table name or non existing table...

 

Or maybe u mistspelled connection password? is that possible?

Link to comment
https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010200
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.