bindParam(1, $data, PDO::PARAM_STR); The third parameter is data type of $data
So you should set the third parameter value as PDO::PARAM_ARRAY in your example, but pdo don't support PDO::PARAM_ARRAY.
When data type is array, the fifth parameter is data type of array's element.
If you don't set the fifth parameter, driver will process array's element as string.
If you set a invalid data type, the result is unknown, becasue the data will be convert by php.