J'utilise une classe Articles pour extraire des données de ma base de données à propos des ..articles. Je peux utiliser des instances pour insérer des données, les modifier mais je n'arrive pas à l'utiliser depuis un ensemble de pages différent. structure de dossier ressemble à ceci /cms/conf.php
(avec preuves au travail define ("DB_DSN" [..] etc)PDOException uniquement dans certains cas d'utilisation
/cms/classes/Article.php
/about.php
dans about.php
Je veux sortir des données de mon DB en utilisant une fonction statique dans mon article classe:
public static function getById($id) {
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$sql = "SELECT * FROM articles WHERE id = :id";
$st = $conn->prepare($sql);
$st->bindValue(":id", $id, PDO::PARAM_INT);
$st->execute();
$row = $st->fetch();
$conn = null;
if ($row) return new Article($row);
}
Je l'appelle comme ceci: echo Article::getById(17)->content;
Pour obtenir un Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name'
[...] PDO->__construct('DB_DSN', 'DB_USERNAME', 'DB_PASSWORD') #1
Cependant, je peux utiliser la même méthode et la même syntaxe d'appel de méthode dans mon dossier de jouet /cms/dataentry.php
sans problèmes (soit de ligne de commande ou d'un navigateur Web) .
Je suppose que je fais de mauvaises hypothèses d'environnement? apps.php
n'ont include 'cms/classes/Article.php';
version PHP 5.3.2
Il semble 'DB_DSN' est invalide. Cette constante est-elle même définie? – KingCrunch
Oui, je l'ai utilisé pour ajouter et récupérer manuellement des données avec du code dans le fichier '/ cms/dataentry.php'. (J'ai juste tronqué manuellement l'instruction 'define()' dans ma question) – Recct
Je veux dire, est-ce que c'est défini au moment où vous essayez de l'utiliser? Essayez de 'var_dump()', définissez 'error_reporting()' sur quelque chose (de plus) utile, ... – KingCrunch