Perl DBI - Bind Parameters Problem

I have a SQL statement that includes a UNION that I can't get to work when I bind the parameters. (I am binding the parameters to prevent SQL injection.)
Does anybody have any suggestion on how I can use a SQL statement that includes a UNION and bind the params?

Code would be something like this:
$sql=" SELECT DISTINCT cp.model_code, p.product_code, cp.model_desc, cp.eur_na, '2005' calendar_year, cp.volume, \
FROM calendar_product cp, product p
WHERE cp.calendar_year = '$calYear' AND cp.eur_na = '$region' AND cp.model_code = '$modelCode'
AND p.product_code = cp.product_code
UNION SELECT cp.model_code, '' product_code, cp.model_desc, cp.eur_na, '2005' calendar_year,
FROM calendar_product cp, model m
WHERE cp.model_code = m.model_code AND cp.calendar_year(+) = '$calYear' AND cp.eur_na = '$region' AND cp.model_code = '$modelCode'
AND cp.product_code = 'VEHL' ";

$sth = $dbh->prepare($sql);
$sth->bind_param( 1, $calYear );
$sth->bind_param( 2, $region );
$sth->bind_param( 3, $modelCode );
$sth->execute;

I see that you have directly assigned variables in the statement, now you have complete statement, i guess there is no need to bind again...

Just do a print statment after sql statement assign, you can see that the values were already assigned...

If you want to bind, i guess in the statement you need to give it as "?" and then you need to use bind function to associate the "?" with the corresponding variables...