public function getColumnBindingPHP(Column $column, $identifier, $columnValueAccessor, $tab = " ") { // FIXME - This is a temporary hack to get around apparent bugs w/ PDO+MYSQL // See http://pecl.php.net/bugs/bug.php?id=9919 if ($column->getPDOType() === \PDO::PARAM_BOOL) { return sprintf("\n%s\$stmt->bindValue(%s, (int) %s, PDO::PARAM_INT);", $tab, $identifier, $columnValueAccessor); } return parent::getColumnBindingPHP($column, $identifier, $columnValueAccessor, $tab); }
/** * Get the PHP snippet for binding a value to a column. * Warning: duplicates logic from OracleAdapter::bindValue(). * Any code modification here must be ported there. */ public function getColumnBindingPHP(Column $column, $identifier, $columnValueAccessor, $tab = " ") { if ($column->getPDOType() == PropelTypes::CLOB_EMU) { return sprintf("%s\$stmt->bindParam(%s, %s, %s, strlen(%s));\n", $tab, $identifier, $columnValueAccessor, PropelTypes::getPdoTypeString($column->getType()), $columnValueAccessor); } return parent::getColumnBindingPHP($column, $identifier, $columnValueAccessor, $tab); }
/** * @dataProvider providePdoTypes * */ public function testGetPdoType($mappingType, $pdoType) { $domain = $this->getDomainMock(); $domain->expects($this->any())->method('getType')->will($this->returnValue($mappingType)); $column = new Column(); $column->setDomain($domain); $column->setType($mappingType); $this->assertSame($pdoType, $column->getPDOType()); }
/** * Get the PHP snippet for binding a value to a column. * Warning: duplicates logic from AdapterInterface::bindValue(). * Any code modification here must be ported there. */ public function getColumnBindingPHP(Column $column, $identifier, $columnValueAccessor, $tab = " ") { $script = ''; if ($column->isTemporalType()) { $columnValueAccessor = $columnValueAccessor . " ? " . $columnValueAccessor . "->format(\"" . $this->getTimeStampFormatter() . "\") : null"; } elseif ($column->isLobType()) { // we always need to make sure that the stream is rewound, otherwise nothing will // get written to database. $script .= "\nif (is_resource({$columnValueAccessor})) {\n rewind({$columnValueAccessor});\n}"; } $script .= sprintf("\n\$stmt->bindValue(%s, %s, %s);", $identifier, $columnValueAccessor, PropelTypes::getPdoTypeStringFromPdoType($column->getPDOType())); return preg_replace('/^(.+)/m', $tab . '$1', $script); }