Если оба ваших условия не выполняются, у вас нет предложения else
, поэтому в вашем утверждении отсутствуют 2 значения. Предполагая, что вы не хотите выполнять его, когда значения отсутствуют, я бы предложил переместить вызов execute внутри оператора if.
$first = (rand(1, 100));
$second = (rand(1, 100));
$last = $first + $second;
$stmt = $connection->prepare("
INSERT INTO equations (first_number, second_number, operation, result)
VALUES (:first_number, :second_number, :operation, :result)
");
$stmt->bindParam(':first_number', $first, PDO::PARAM_INT);
$stmt->bindParam(':second_number', $second, PDO::PARAM_INT);
if ($last <= 100) {
$stmt->bindParam(':result', $last, PDO::PARAM_INT);
$stmt->bindValue(':operation', "+", PDO::PARAM_STR);
$stmt->execute();
} elseif ($first > $second) {
$second_result = $first - $second;
$stmt->bindParam(':result', $second_result, PDO::PARAM_INT);
$stmt->bindValue(':operation', "-", PDO::PARAM_STR);
$stmt->execute();
}