Sum (?) С mysqli возвращает 0 или неверный результат при подготовке и bind_param

Я хочу подвести итог строки в Mysql, используя php с mysqli и подготовленные заявления. Когда я использую подготовленное утверждение и связываю параметр, он возвращает неправильный результат (около 200 …):

$stmt = $mysqli->prepare("SELECT SUM($user) FROM $datenbankid WHERE namepayer=?");
$value = "clemens";

if(!$stmt->bind_param("s", $value)){
$response["errormessage"] = $stmt->error;
}
$stmt->execute();

$stmt->bind_result($sum);
$stmt->fetch();

$response["debtsan" . $value] = $sum;

$stmt->close();

Но когда я использую его без bind_param, он возвращает правильное количество:

$stmt = $mysqli->prepare("SELECT SUM($user) FROM $datenbankid WHERE namepayer = Clemens");

$stmt->execute();

$stmt->bind_result($sum);
$stmt->fetch();

$response["debtsantest" . $value] = $sum;

$stmt->close();

Я не получаю ошибок и без параметра связывания это работает. Но я хочу использовать bind_param, чтобы избежать внедрения SQL.

Спасибо за помощь.
Демьян

0

Решение

Можете ли вы попробовать с этим кодом, оставьте свой запрос как есть, используйте этот код под запросом

$value = "clemens";
if($stmt === false) {
$response["errormessage"] =$mysqli->error;
}
$stmt->bind_param("s", $value);
$stmt->execute();
$stmt->bind_result($sum);
while ($stmt->fetch()) {
printf("%i\n", $sum);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]