Thomas Koh
Thomas Koh

Reputation: 333

Connect to a second database from wordpress

I am trying to connect to my own self created second database using wordpress. What i am trying to achieve is to extract data from my own database(not wordpress database) on my static wordpress front page.

I use php_everywhere plug in in order for me to write php code in blog post and pages.

I use the following code:

    <?php
$servername = "localhost";
$username = "thomas";
$password = "password";
$dbname = "thomas";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * from number";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>

However i got an error unexpected '"localhost"' (T_CONSTANT_ENCAPSED_STRING). Not sure why.

Upvotes: 1

Views: 2514

Answers (3)

dipmala
dipmala

Reputation: 2011

Wordpres provide a way to connect the other db.

     $mydb = new wpdb('thomas','password','thomas','localhost');
     $rows = $mydb->get_results("select Name from number");
     foreach ($rows as $row) :
        echo "id: " . $row->id. " - Name: " . $row->firstname. " " . $row->lastname. "<br>";
     endforeach;

Upvotes: 0

Jaydp
Jaydp

Reputation: 1039

You can create new object for new database connection and use that object to do any operation for external database

$mydb = new wpdb('thomas','password','thomas','localhost');
$rows = $mydb->get_results("select Name from my_table");

You must have to use $mydb in place of $wpdb

Upvotes: 1

BlueDogRanch
BlueDogRanch

Reputation: 575

See https://stackoverflow.com/search?q=T_CONSTANT_ENCAPSED_STRING

1) When using that plugin, be sure you've used straight quotes and backspace around the php to remove invisible control characters. And be sure the plugin doesn't have limitations on what it can do and ignores paragraph returns in the editor.

2) You're much better off using a page template in your theme and running PHP in a .php file and not in the post/page editor with a plugin. See Page Templates | Theme Developer Handbook | WordPress Developer Resources. Make a page template, add the calls to header, etc., and then work with your PHP in the file itself. Select the page template in the page editor of the page you're publishing in WordPress.

Upvotes: 1

Related Questions