Alvaro
Alvaro

Reputation: 41605

Use Sanitize::clean without Database connection at CakePHP 2.3

I am working over Oracle DataBase and CakePHP 2.3. As CakePHP doesn't support Oracle (there are no drivers for it), I am using Oracle procedures or php OCI8 functions in my models.

As a result of it, I am working with CakePHP without any effective database link in the eyes of CakePHP framework.

I am trying to use the Sanitize::clean method in order to clean a comment before saving it in the database and I am having troubles as it seems to look in the database for its task.

This is the resulting error:

Database connection "Mysql" is missing, or could not be created.

And this is how I try to sanitize it:

$comment = Sanitize::clean($this->request->data['comment']);

It works perfectly well if i just do this:

$comment = $this->request->data['comment'];

Is it possible somehow to use Sanitize::clean without any configured database at CakePHP 2.3?

Thanks

Upvotes: 1

Views: 1151

Answers (1)

Chris
Chris

Reputation: 429

The function Sanitize::clean() expects 2 arguments, by default when you do not give a second argument CakePHP uses its default values and tries to connect to a DB with the 'default' connection. After a quick glance at the Sanitize Class in the library, it appears that it is the 'escape' option that requires a DB connection. It is called by default to make a string SQL-safe.

So in your case, as you don't need a SQL connection, this request should do the trick:

$comment = Sanitize::clean($this->request->data['comment'], array('escape' => false);

Check the CookBook for more information on the Sanitize class.

Upvotes: 1

Related Questions