Прежде всего, часть PDO вашего кода работает нормально. Нет необходимости добавлять псевдонимы , 'SUM (test_column)' также хорош.Это ваш "oop" (или, скорее, возвращающий результат из функции) испорчен:
- вы присваиваете его переменной вместо того, чтобы возвращать
- , который вы пытаетесь использовать(не существует) возвращаемое значение в виде массива, когда оно уже является скалярным значением.
Однако часть PDO также может быть улучшена, так как PDO является оболочкой базы данных он предлагает множество вспомогательных методов для упрощения рутинных операций, в том числе один для , возвращающий одно скалярное значение сразу после оператора.
Кроме того, нет смысла использовать метод подготовки к запросу, который нене содержит заполнителей, что делает его вроде подготовленного культа грузового заявления .Простого запроса () будет достаточно
Так что ваш код может быть намного чище:
function test_sum()
{
$query = "SELECT SUM(test_column) FROM `$this->table_name`";
return $this->conn->query( $query )->fetchColumn();
}
Теперь возвращаемое значение уже содержит сумму из таблицы, поэтомуВы можете повторить это сразу:
echo $class_name->test_sum();