--TEST-- mysqli_stmt_get_result - geometry / spatial types --SKIPIF-- --FILE-- type != MYSQLI_TYPE_GEOMETRY) { printf("[%04d] [%d] %s wrong type %d\n", $offset + 10, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt), $fields[1]->type); } $num = 0; while ($row = mysqli_fetch_assoc($res)) { $bind_res = &$row['label']; if (!$stmt2 = mysqli_stmt_init($link)) { printf("[%04d] [%d] %s\n", $offset + 11, mysqli_errno($link), mysqli_error($link)); return false; } if (!mysqli_stmt_prepare($stmt2, "INSERT INTO test(id, label) VALUES (?, ?)")) { printf("[%04d] [%d] %s\n", $offset + 12, mysqli_stmt_errno($stmt2), mysqli_stmt_error($stmt2)); return false; } $id = $row['id'] + 10; if (!mysqli_stmt_bind_param($stmt2, "is", $id, $bind_res)) { printf("[%04d] [%d] %s\n", $offset + 13, mysqli_stmt_errno($stmt2), mysqli_stmt_error($stmt2)); return false; } if (!mysqli_stmt_execute($stmt2)) { printf("[%04d] [%d] %s\n", $offset + 14, mysqli_stmt_errno($stmt2), mysqli_stmt_error($stmt2)); return false; } mysqli_stmt_close($stmt2); if (!$res_normal = mysqli_query($link, sprintf("SELECT id, label FROM test WHERE id = %d", $row['id'] + 10))) { printf("[%04d] [%d] %s\n", $offset + 15, mysqli_errno($link), mysqli_error($link)); return false; } if (!$row_normal = mysqli_fetch_assoc($res_normal)) { printf("[%04d] [%d] %s\n", $offset + 16, mysqli_errno($link), mysqli_error($link)); return false; } if ($row_normal['label'] != $bind_res) { printf("[%04d] PS and non-PS return different data.\n", $offset + 17); return false; } mysqli_free_result($res_normal); $num++; } if ($num != 3) { printf("[%04d] [%d] %s, expecting 3 results, got only %d results\n", $offset + 18, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt), $num); mysqli_free_result($res); mysqli_stmt_close($stmt); return false; } mysqli_free_result($res); mysqli_stmt_close($stmt); return true; } func_mysqli_stmt_get_result_geom($link, $engine, "GEOMETRY", "GeomFromText('POINT(2 2)')", 20); func_mysqli_stmt_get_result_geom($link, $engine, "POINT", "GeomFromText('POINT(1 1)')", 40); func_mysqli_stmt_get_result_geom($link, $engine, "LINESTRING", "GeomFromText('LINESTRING(0 0,1 1,2 2)')", 60); func_mysqli_stmt_get_result_geom($link, $engine, "POLYGON", "GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))')", 80); func_mysqli_stmt_get_result_geom($link, $engine, "MULTIPOINT", "GeomFromText('MULTIPOINT(1 1, 2 2)')", 100); func_mysqli_stmt_get_result_geom($link, $engine, "MULTILINESTRING", "GeomFromText('MULTILINESTRING((0 0,1 1,2 2),(0 0,1 1,3 3))')", 120); func_mysqli_stmt_get_result_geom($link, $engine, "MULTIPOLYGON", "GeomFromText('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5)),((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5)))')", 140); func_mysqli_stmt_get_result_geom($link, $engine, "GEOMETRYCOLLECTION", "GeomFromText('GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))')", 160); mysqli_close($link); print "done!"; ?> --CLEAN-- --EXPECT-- done!