Skip to content

Commit 2938427

Browse files
committed
Add test for #77
1 parent 240f750 commit 2938427

File tree

2 files changed

+71
-1
lines changed

2 files changed

+71
-1
lines changed

tests/functions.inc

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,20 @@ function rand_number($len , $prec = -1, $sign = 1)
8181
$n = "-" .$n;
8282
}
8383
return $n;
84-
}
84+
}
85+
86+
function array2sql_parts($data) {
87+
$fields_str = join(",", array_keys($data));
88+
$q_str = join(",", array_fill(0, count($data), "?"));
89+
return [$fields_str, $q_str, $data];
90+
}
91+
92+
function dump_rows($q) {
93+
while($row = ibase_fetch_row($q)){
94+
var_dump($row);
95+
}
96+
}
97+
98+
function dump_table_rows($table) {
99+
dump_rows(ibase_query(sprintf('SELECT * FROM "%s"', $table)));
100+
}

tests/issue77_001.phpt

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
--TEST--
2+
Issue #77: Order of INSERT parameters cause "Incorrect values within SQLDA structure"
3+
--SKIPIF--
4+
<?php
5+
include("skipif.inc");
6+
?>
7+
--FILE--
8+
<?php
9+
10+
require("interbase.inc");
11+
12+
$db = ibase_connect($test_base);
13+
14+
function test77() {
15+
ibase_query('CREATE TABLE TTEST (TTYPE VARCHAR(1) NOT NULL, F8 NUMERIC(9,2))');
16+
ibase_commit();
17+
18+
[$fields_str, $q_str, $data] = array2sql_parts([
19+
'TTYPE'=>'1',
20+
'F8'=>'',
21+
]);
22+
ibase_query("INSERT INTO TTEST($fields_str) VALUES ($q_str)", ...array_values($data));
23+
dump_table_rows("TTEST");
24+
25+
[$fields_str, $q_str, $data] = array2sql_parts([
26+
'F8'=>'',
27+
'TTYPE'=>'2',
28+
]);
29+
ibase_query("INSERT INTO TTEST($fields_str) VALUES ($q_str)", ...array_values($data));
30+
dump_table_rows("TTEST");
31+
}
32+
33+
test77();
34+
35+
?>
36+
--EXPECT--
37+
array(2) {
38+
[0]=>
39+
string(1) "1"
40+
[1]=>
41+
NULL
42+
}
43+
array(2) {
44+
[0]=>
45+
string(1) "1"
46+
[1]=>
47+
NULL
48+
}
49+
array(2) {
50+
[0]=>
51+
string(1) "2"
52+
[1]=>
53+
NULL
54+
}

0 commit comments

Comments
 (0)