Query WP data with the WPDB API from outside WordPress

I’m working on a project with WP, a bit like a plugin, but not quite one.

I’m encountering an issue, when trying to include a file that contains some custom SQL functions in a class, in a completely different file, I get redirected to http://example.com/folder1/file.php/wp-admin/install.php

Which states that I’ve already installed WP and I need to uninstall it before I can install it again.. But I’m not trying to install/re-install WP.

^ That sounds kinda complicated, let me give an example:

I have file1.php and file2.php. file1.php contains many SQL functions that I wrote to access the DB which WP uses.

And file2.php contains a class that includes file1.php, so I can use some of the SQL functions in the class.

Now, I first tested it with calling some SQL functions (from file1.php) in the class and came across this issue. After some debugging (removing lines, one by one), the issue was the line that includes file1.php (the file with all the SQL functions in it)

So for some reason, everytime I include file1.php in file2.php I get redirected to:
http://example.com/folder1/file2.php/wp-admin/install.php

Any ideas why this is happening and how I can fix it?

Forgot to mention something:

file1.php (with all the SQL functions) does include wp-config.php to get the DB info, which could be related to this issue, right?

2 Answers
2

Forgot to mention something:

file1.php (with all the SQL functions) does include wp-config.php
to get the DB info, which could be related to this issue, right?

Dollars to doughnuts, this is your problem. You should never, ever, ever need to load wp-config.php directly.

Are you trying to access WordPress functions from outside WordPress?

Edit

To access WordPress functions from outside the normal WordPress environment, you want to include wp-load.php, not wp-config.php.

Basic example:

<?php
require( 'path/to-wordpress/wp-load.php' );
?>

Edit 2

I don’t [need to access WordPress functions]. Just the DB info (host,user,password). The app I’m working on installs some extra tables in the WP db. The app will not need to touch any of WP’s data. IT just uses the DB info to access its own data, in its own tables just using the same Database as the one WP uses. I would prefer to just make my own DB in the users MySQL but most users wont have permission to do so. So I have to use WP’s database, but my own tables. Although the app requires WP to be installed, I don’t need to access any of WP’s functions ATM.

In this case, you don’t need to load WordPress. You’re simply accessing the database. Just omit the line entirely.

Leave a Comment