अब कोड काम कर रहा है, हालांकि काफी निराशाजनक रूप से मैं इस बात की तह तक नहीं गया कि यह पहली बार में काम क्यों नहीं कर रहा था! मुझे संदेह है कि यह पोर्ट नंबर को ठीक से नहीं लेने के साथ कुछ करने के लिए था - शायद एक टाइपो कहीं जो 'गलती से' सही हो गया (बजाय जानबूझकर) जब मैं चीजों को आज़मा रहा था। यह कोड अब काम करता है (सिर्फ MySQL के लिए):
$dsn = null;
$options = null;
$this->host = SYSTEM_CONFIG["database"]["host"];
$this->type = SYSTEM_CONFIG["database"]["type"];
$this->name = SYSTEM_CONFIG["database"]["name"];
$this->user = SYSTEM_CONFIG["database"]["user"];
$this->pass = SYSTEM_CONFIG["database"]["pass"];
$this->port = SYSTEM_CONFIG["database"]["port"];
switch ($this->type) {
case "SQLSRV":
// Other untested code...
break;
default:
$dsn = "mysql:host={$this->host};port={$this->port};dbname={$this->name};charset=utf8";
$options = [
PDO::ATTR_PERSISTENT => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_STRINGIFY_FETCHES => false
];
}
try {
$this->pdo = new PDO($dsn, $this->user, $this->pass, $options);
} catch (PDOException $e) {
$this->logError($e);
} catch (Exception $e) {
$this->logError($e);
}