$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$db->exec('CREATE TABLE test(id int)');
$db->exec('INSERT INTO test VALUES(1)');
-$stmt = $db->prepare('SELECT * FROM test LIMIT :limit');
+if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'firebird') {
+ $sql = 'SELECT FIRST :limit * FROM test';
+} else {
+ $sql = 'SELECT * FROM test LIMIT :limit';
+}
+$stmt = $db->prepare($sql);
$stmt->bindValue('limit', 1, PDO::PARAM_INT);
if(!($res = $stmt->execute())) var_dump($stmt->errorInfo());
if(!($res = $stmt->execute())) var_dump($stmt->errorInfo());
$stmt->execute();
var_dump($stmt->fetchAll());
-$pdo = PDOTest::factory();
-
if ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME) == 'oci') {
$type = "clob";
-} else{
+} else if ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME) == 'firebird') {
+ $type = 'BLOB SUB_TYPE TEXT';
+} else {
$type = "text";
}
put_cnt += chunk_size;
}
- zval_ptr_dtor(param);
+ zval_dtor(param);
if (isc_close_blob(H->isc_status, &h)) {
RECORD_ERROR(stmt);
} else {
parameter = ¶m->parameter;
}
+
+ if (Z_TYPE_P(parameter) == IS_RESOURCE) {
+ php_stream *stm;
+
+ php_stream_from_zval_no_verify(stm, parameter);
+ if (stm) {
+ zval_ptr_dtor(parameter);
+ ZVAL_STR(parameter, php_stream_copy_to_mem(stm, PHP_STREAM_COPY_ALL, 0));
+ } else {
+ pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource" TSRMLS_CC);
+ return 0;
+ }
+ }
switch (var->sqltype & ~1) {
case SQL_ARRAY:
} else {
parameter = ¶m->parameter;
}
+ zval_ptr_dtor(parameter);
+ ZVAL_NULL(parameter);
if (firebird_stmt_get_col(stmt, param->paramno, &value, &value_len, &caller_frees TSRMLS_CC)) {
switch (PDO_PARAM_TYPE(param->param_type)) {