Опитвам се да осъществя връзка с базата данни, докато информацията за конфигурацията на базата данни е отделена от връзката.
Това е кодът, който написах
db конфигурационна информация:
$config = array(
"database" => array(
"host" => "host",
"username" => "username",
"password" => "password",
"name" => "name",
)
);
define("databse_config", $config["database"]);
$config обикновено съдържа и друга информация, която не е свързана с въпроса, затова дефинирах „database_config“.
връзка с база данни:
require_once "config.php";
define("DB_HOST", databse_config['host']);
define("DB_USERNAME", databse_config['username']);
define("DB_PASSWORD", databse_config['password']);
define("DB_NAME", databse_config['name']);
function connect()
{
$dbhost = DB_HOST;
$dbuser = DB_USERNAME;
$dbpass = DB_PASSWORD;
$dbname = DB_NAME;
try {
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$conn->exec("set names utf8");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn;
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
connect();
Проблемът, с който продължавам да се сблъсквам, е, че докато се опитвам да изпълня функцията, страницата продължава да се зарежда и в крайна сметка извежда следната грешка:
Връзката е неуспешна: SQLSTATE[HY000] [2002] Времето за изчакване на връзката е изтекло
Аз съм сравнително нов в PDO, така че също опитах същото, докато използвах mysqli, което даде същия резултат.
Всяка помощ ще бъде оценена.