lewashby Posted December 24, 2015 Share Posted December 24, 2015 I'm getting this error -> PHP Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/html/popreport/includes/database.php on line 10 form /var/log/apache/error.log Here's my database.php file <?php require_once("./constants.php"); function get_db_connection() { try { $db_connection = new PDO("mysql:host=HOST;dbname=DB_NAME", DB_USER, PASSWORD); $db_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // $query = $db_connection->query("SELECT * FROM inmate_board"); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br />"; die(); } return $db_connection; } ?> and here's my constants.php file <?php define('HOST', 'localhost'); define('DB_NAME', 'xxxx'); define('DB_USER', 'xxxx'); define('PASSWORD', 'xxxx); ?> Any ideas? Thanks for any and all replies. Quote Link to comment https://forums.phpfreaks.com/topic/299984-pdo-connection-getaddrinfo-failed/ Share on other sites More sharing options...
Solution requinix Posted December 24, 2015 Solution Share Posted December 24, 2015 "mysql:host=HOST;dbname=DB_NAME"PDO doesn't know that "HOST" and "DB_NAME" are PHP constants. You have to put the values in yourself. "mysql:host=" . HOST . ";dbname=" . DB_NAME Quote Link to comment https://forums.phpfreaks.com/topic/299984-pdo-connection-getaddrinfo-failed/#findComment-1528527 Share on other sites More sharing options...
benanamen Posted December 24, 2015 Share Posted December 24, 2015 (edited) Why are you putting your connection in a function? All you need to do is require database.php in the pages that need a connection. (Less the function code) And you dont want to output connection error details to the user. Edited December 24, 2015 by benanamen Quote Link to comment https://forums.phpfreaks.com/topic/299984-pdo-connection-getaddrinfo-failed/#findComment-1528529 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.