Это работает, когда я жёстко значение постоянной:как использовать переменную DEFINE значение в PHP
define("SERVER","localhost");
define("USER","root");
define("PASSWORD","mypass");
define("DATABASE","my_db");
define("PORT","3306");
Но я должен получить значение из переменной, но это не работает:
define("SERVER",$host);
define("USER",$username);
define("PASSWORD",$password);
define("DATABASE",$database);
define("PORT","3306");
$conn = new connection(SERVER,USER,PASSWORD,DATABASE,PORT);
Я искал в Интернете, даже в руководстве PHP не показан пример для константы с переменным значением. Для моего приложения я должен получить его от переменной, как , чтобы получить это право?
Я получаю ошибку, как это:
Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\wamp\www\ezy\class.dbconnect.php on line 33
Полный код config.php
<?php
session_start();
//read for config details
$myFile = "details.txt";
$lines = file($myFile);
$host = $lines[0];//localhost
$username = $lines[1];//root
$password = $lines[2];//mypass
$org_name = $lines[3];//zealous
$database = $lines[4];//zealous_db
//include files starts
include('class.dbconnect.php');
//include files ends
//db credentials localhost
define("SERVER",$host);
define("USER",$username);
define("PASSWORD",$password);
define("DATABASE",$database);
define("PORT","3306");
$conn = new connection(SERVER,USER,PASSWORD,DATABASE,PORT);
?>
класс dbconnect.php
<?php
interface db
{
public function __construct($param,$param2,$param3,$param4,$param5);
}
abstract class connectionStatus
{
public function connectionStatus()
{
echo "Connection Established!";
}
}
class connection extends connectionStatus implements db
{
public static $server;
public static $user;
public static $pass;
public static $dbname;
public static $port;
public static $pdo;
public function __construct($param,$param2,$param3,$param4,$param5)
{
self::$server = $param;
self::$user = $param2;
self::$pass = $param3;
self::$dbname = $param4;
self::$port = $param5;
try
{
self::$pdo = new PDO('mysql:host='.self::$server.'; dbname='.self::$dbname, self::$user, self::$pass);
self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e)
{
echo 'ERROR: ' . $e->getMessage();
}
self::$pdo->query("use ".self::$dbname);
//$this->connectionStatus();
}
}
?>
, если вы не присвоили ничего этим переменным, то в этом проблема. Теперь вы должны получать неопределенные переменные уведомления. –
@ Fred-ii-, я сделал это, но не показывал в приведенном выше коде, и проверял их, чтобы их повторить, и они работают – 112233
, вам нужно показать нам остальную часть кода подключения PDO и то, как они используются точно. Это догадки прямо сейчас. –