Are you sure that the variable $donorfile is on object of the type which has the member function getByDateOrder ?
Using:
print_r($donorfile);
will show you everything about it.
Also be very careful using variables like $fdate
If you have calculated $fdate in your own code then you might be safe, but if it is using user input, then what happens when someone enters a date like:
0 ; drop table;
Best practice is to validate your inputs and use prepare.
What Ross said.
Additionally, the getByDateOrder() method has a couple typographic errors.
You have global wpdb$;
It should be global $wpdb;
$this->qstring=$query; appears twice. No harm, but unnecessary.
When developing code you will want WP_DEBUG defined as true in wp-config.php. Then you will be notified of problems like calling methods of non-objects.
Thanks for the link! I’ll check it out.
Ignore my prior post. It was meant for another thread.
Thanks for the suggestions! I haven’t worked with PHP for years and I am quite rusty.
This is my new calling logic:
echo “Calling getByDateOrder from date is $fdate”;
print_r($donorfile);
$donorfile->getByDateOrder($fdate);
die(“Called getByDateOrder”);
This is the method called:
public function getByDateOrder($fdate) {
global $wpdb;
die(“getByDateOrder entered”);
$query=”SELECT * FROM ncrj_donors WHERE lgdate >= ‘$fdate’ ORDER BY lgdate”;
$this->qstring=$query;
$wpdb->query($query) or die(“getByDateOrder Failed”);
$num=wpdb->num_rows;
$this->i=0;
$this->lmt=$num;
if ($num==0) {
return false;
}
$this->result=$wpdb->get_row($query) or die(“Donor Query Failed”);
$this->readIt();
return true;
}
This is the result:
Calling getByDateOrder from date is 2016-01-01Donor Object ( [title] => [fname] => [qstring] => [lname] => [addr1] => [addr2] => [city] => [state] => [zipcode] => [donorkey] => [mname] => [name2] => [lgdate] => [phone] => [fax] => [email] => [comment] => [noslct] => [gift] => [result:Donor:private] => [lmt:Donor:private] => [i:Donor:private] => )
Notice: Trying to get property of non-object in /home5/forthill/public_html/_donors/donor.php on line 224
Called getByDateOrder
The line 224 error doesn’t appear to be relevant. It is in another routine and a routine that works. The method still never seems to get invoked,
It seems obvious that the called public function is not being executed because the first statement in it is a die command.
When I’ve had problems like this with other code (not php) in the past, it has usually turned out to be some kind of caching problem. Is that possible here? I can’t come up with any other explanation.
-Bob Chatelle
I have another account with my ISP. I created a new directory in this account and recreated all of my files and logic there.
The problem disappears.
But I suspect, if it is a caching problem, it will reappear.
How do I get rid of these php caching problems?
When I worked with PHP years ago I don’t remember having them.
-Bob Chatelle
It depends on what caching is causing the problem. WP has some internal caching, but it’s extremely rare for it to cause issues like this. If you have a caching plugin, you of course could disable it. I imagine you are referring to server level caching. On shared hosting, I don’t think there’s any choice, but you could try contacting your host to see if there’s an option.
If you have a virtual private server then you can control the caching by either the configuration file or the mods-enabled folder.
Perhaps the best way around this would be to develop locally. Once you start doing this, you’ll never go back 🙂
Are you sure the account where the problem disappeared has an accurately recreated installation? By having different plugins or themes activated, you could be causing conflicts on one site that do not exist in the second.
I have contacted my ISP to see if they can shed some light on this.
MY code can continue to live in the account and directory where it is now working. But I would like to know the cause of the problems.
As far as I know the recreation was accurate. Depending on what my ISP advises, I may just delete/recreate everything on the problem site.
-Bob
While I’ve done little coding thes past few years, problems like this demonstrate the advantages of developing locally. Googleing about, I se there are different approaches for installing a server, wordpress, etc. locally. Do you have any recommendations?
-Bob
Yes developing locally is very helpful.
My advice is to use the “VirtualHost” technique descripde here:
http://httpd.apache.org/docs/2.2/vhosts/name-based.html
And here:
http://en.wikipedia.org/wiki/Hosts_%28file%29
Thanks for all the info! I will explore.
-Bob