Я пытаюсь добавить все значения в одном столбце из таблицы, а затем повторить это значение
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT sum(paid) as total_paid from users";
$result = $conn->query($sql);
echo $result;
Но я получаю эту ошибку:
Допустимая фатальная ошибка: объект класса mysqli_result не может быть преобразован в строку в
Почему и как я могу исправить?
Это слишком долго для "комментария".
Вы должны перебирает результаты и использовать while
цикл, а не повторяющий запрос, поэтому вы получаете настоящую ошибку.
Вам также необходимо убедиться, что тип paid
столбца может использоваться для выполнения математических задач, таких как int
например (например). Если он varchar
, то вам нужно будет отдать его целому числу.
Рекомендации:
Вот процедурный стиль:
$sql = "SELECT sum(paid) as total_paid from users";
$result = $conn->query($sql);
while ($row = mysqli_fetch_array($result)) {
echo "Sum: " . $row['total_paid'];
}
или как объектно-ориентированный метод:
while($row = $result->fetch_array()) {
echo $sum = $row['total_paid'];
}
Примечание:
Чтобы вычислить строку на основе пользователя /id, добавьте предложение WHERE
в ваш запрос.
Т.е.: WHERE id='x'
Это потому, что $result
возвращает объект, а не строку. Вы должны пройти через него и повторить результаты. И поскольку это только одна строка (потому что SUM
без group by
всегда возвращает только одно значение, поэтому только одна строка), вы можете сделать это:
if ($row = $result->fetch_assoc()) {
echo $row['total_paid'];
}
Или, fetch_object()
используйте fetch_object()
:
echo $result->fetch_object()->total_paid;
SUM
без group by
всегда возвращает одну и только одну строку
int
» заставил меня принять двойное мнение. Это имеет смысл, но встречается смешно. Может быть, это только я :)int
- это лишь один из немногих типов, которые можно использовать для выполнения математических операций в MySQL. Есть несколько других. Хотя я мог бы добавить ссылку на сайт MySQL для различных типов, которые могут выполнять математику.