logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

DBIx::Class::Storage::DBI::NoBindVars - Sometime DBDs have poor to no support for bind variables

Description

       This class allows queries to work when the DBD or underlying library does not support the usual "?"
       placeholders, or at least doesn't support them very well, as is the case with DBD::Sybase

Further Questions?

       Check the list of additional DBIC resources.

Methods

connect_info
       We can't cache very effectively without bind variables, so force the "disable_sth_caching" setting to be
       turned on when the connect info is set.

   _prep_for_execute
       Manually subs in the values for the usual "?" placeholders.

   interpolate_unquoted
       This method is called by "_prep_for_execute" for every column in order to determine if its value should
       be quoted or not. The arguments are the current column data type and the actual bind value. The return
       value is interpreted as: true - do not quote, false - do quote. You should override this in you
       Storage::DBI::<database> subclass, if your RDBMS does not like quotes around certain datatypes (e.g.
       Sybase and integer columns). The default method returns false, except for integer datatypes paired with
       values containing nothing but digits.

        WARNING!!!

        Always validate that the bind-value is valid for the current datatype.
        Otherwise you may very well open the door to SQL injection attacks.

   _prep_interpolated_value
       Given a datatype and the value to be inserted directly into a SQL query, returns the necessary string to
       represent that value (by e.g. adding a '$' sign)

Name

       DBIx::Class::Storage::DBI::NoBindVars - Sometime DBDs have poor to no support for bind variables

See Also