code: public function bindParam($name, &$value, $dataType = null, $length = null, $driverOptions = null)
      {
          $this->prepare();
  
          if ($dataType === null) {
              $dataType = $this->db->getSchema()->getPdoType($value);
          }
          if ($length === null) {
              $this->pdoStatement->bindParam($name, $value, $dataType);
          } elseif ($driverOptions === null) {
              $this->pdoStatement->bindParam($name, $value, $dataType, $length);
          } else {
              $this->pdoStatement->bindParam($name, $value, $dataType, $length, $driverOptions);
          }
          $this->params[$name] = &$value;
  
          return $this;
      }
docs: Binds a parameter to the SQL statement to be executed.
  @param string|int $name parameter identifier. For a prepared statement
  using named placeholders, this will be a parameter name of
  the form `:name`. For a prepared statement using question mark
  placeholders, this will be the 1-indexed position of the parameter.
  @param mixed $value the PHP variable to bind to the SQL statement parameter (passed by reference)
  @param int $dataType SQL data type of the parameter. If null, the type is determined by the PHP type of the value.
  @param int $length length of the data type
  @param mixed $driverOptions the driver-specific options
  @return $this the current command being executed
  @see https://secure.php.net/manual/en/function.PDOStatement-bindParam.php