В предыдущем вопросе о строительстве класс базы данных мне сообщили, что я должен перейти к PDO для моего статического класса дбPDO класс базы данных возвращения пустой массив
Это то, что я до сих пор все работает, кроме dbDataArray распечатывает пустой массив, даже когда я знаю, что в таблице есть данные.
class db
{
private static $connection;
const __DB__HOST__ = __DB__HOST__;
const __DB_USERNAME__ = __DB_USERNAME__;
const __DB_PASSWORD__ = __DB_PASSWORD__;
const __DB_NAME__ = __DB_NAME__;
private static function getConnection() {
if (self::$connection === null) {
try {
self::$connection = new PDO("mysql:__DB_NAME__=pdo;host=".__DB_HOST__, __DB_USERNAME__, __DB_PASSWORD__);
return self::$connection;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
/*** close the database connection ***/
//self::$connection = null;
}
//return all results from sqlquery in array
public static function dbDataArray($sql_string){
$conn = self::getConnection();
$sth = $conn->prepare($sql_string);
$sth->execute();
$result = $sth->fetchAll();
print_r($result);
}
}
Пожалуйста, не выбрасывайте исключение и продолжить выполнение. Как ваша программа должна продолжаться без подключения к базе данных? Я настоятельно рекомендую удалить блок try и try 'catch'. Вы также испортили ленивый подход. 'Return' должен находиться вне блока' if'. – Phil
Возможный дубликат [Попытка создания статического класса db, доступ к которому я могу получить из любой функции вне класса] (http://stackoverflow.com/questions/18885421/trying-to-build-a-static-db-class -that-i-can-access-from-any-function-outside-of) – Phil
Спасибо за помощь Фил, я все еще изучаю PDO, и я бы назвал себя неофитом, когда речь заходит о ООП. Я написал несколько уроков с нуля, но ничего сложного. – MadScientist