title: empty value inserted when parameter is false
body: <p>I'm trying to insert FALSE value in the database, without any luck - it inserts an empty string. The column is varchar. If I insert TRUE value, it inserts 1.</p>
  
  <p>I'm using mysql, PDO and php.</p>
  
  <p>I'm also using a DB class which does nothing more with the query than preparing and executing it using PDO prepared statements.</p>
  
  <p>The query in mind is a very basic one:</p>
  
  <pre><code>$sql = 'INSERT INTO api_logs_values (value) VALUES (?)';
  </code></pre>
  
  <p>and then:</p>
  
  <pre><code>$this-&gt;_db-&gt;query($sql, array(FALSE));
  </code></pre>
  
  <p>any ideas what is happening?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>Added table structure:</p>
  
  <pre><code>api_logs_values | CREATE TABLE `api_logs_values` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `log_id` int(10) unsigned NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `value` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `log_id` (`log_id`,`name`)
  ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8
  </code></pre>
  
  <p><strong>EDIT2:</strong></p>
  
  <p>I've found a bug report concerning this here <a href="https://bugs.php.net/bug.php?id=33876" rel="noreferrer">https://bugs.php.net/bug.php?id=33876</a>, but there doesn't seem to be a proper, nice solution to this. Except maybe setting the PDO_PARAM_BOOL attribute.</p>
  
  <p><strong>EDIT3:</strong></p>
  
  <p>I've found out that the DB class that I am using does not bind the params separately, but does execute($param), and looking here <a href="http://php.net/manual/en/pdostatement.execute.php" rel="noreferrer">http://php.net/manual/en/pdostatement.execute.php</a>, it treats all params as PDO::PARAM_STR, which is not correct.</p>