/** * Binds a PHP variable to a corresponding named or question mark placeholder in the SQL statement * that was use to prepare the statement. Unlike PDOStatement::bindValue(), the variable is bound * as a reference and will only be evaluated at the time that PDOStatement::execute() is called. * Returns a boolean value indicating success. * * @param integer $pos Parameter identifier (for determining what to replace in the query). * @param mixed $value The value to bind to the parameter. * @param integer $type Explicit data type for the parameter using the PDO::PARAM_* constants. Defaults to PDO::PARAM_STR. * @param integer $length Length of the data type. To indicate that a parameter is an OUT parameter from a stored procedure, you must explicitly set the length. * @param mixed $driver_options * * @return boolean */ public function bindParam($pos, &$value, $type = PDO::PARAM_STR, $length = 0, $driver_options = null) { $debug = $this->pdo->getDebugSnapshot(); $typestr = isset(self::$typeMap[$type]) ? self::$typeMap[$type] : '(default)'; $return = parent::bindParam($pos, $value, $type, $length, $driver_options); $valuestr = $length > 100 ? '[Large value]' : var_export($value, true); $msg = sprintf('Binding %s at position %s w/ PDO type %s', $valuestr, $pos, $typestr); $this->boundValues[$pos] = $valuestr; $this->pdo->log($msg, null, __METHOD__, $debug); return $return; }