mirror of
https://github.com/php/php-src.git
synced 2026-04-21 06:51:18 +02:00
1f42777927
The DB connection should be provided in all cases as the first argument. The overloaded function signatures will be removed in the future. Warn about this change. Part of https://wiki.php.net/rfc/deprecations_php_8_1.
197 lines
3.0 KiB
PHP
197 lines
3.0 KiB
PHP
--TEST--
|
|
Bug #71998 Function pg_insert does not insert when column type = inet
|
|
--EXTENSIONS--
|
|
pgsql
|
|
--SKIPIF--
|
|
<?php include("skipif.inc"); ?>
|
|
--FILE--
|
|
<?php
|
|
// Kudos for the IP regex to
|
|
// http://stackoverflow.com/a/17871737/3358424
|
|
|
|
include('config.inc');
|
|
|
|
$db = pg_connect($conn_str);
|
|
|
|
pg_query($db, "CREATE TABLE tmp_statistics (id integer NOT NULL, remote_addr inet);");
|
|
|
|
$ips = array(
|
|
/* IPv4*/
|
|
"127.0.0.1",
|
|
"10.0.0.1",
|
|
"192.168.1.1",
|
|
"0.0.0.0",
|
|
"255.255.255.255",
|
|
"192.168.1.35/24",
|
|
|
|
/* IPv6 */
|
|
"::1",
|
|
"::10.2.3.4",
|
|
"::ffff:10.4.3.2",
|
|
"1:2:3:4:5:6:7:8",
|
|
"::ffff:10.0.0.1",
|
|
"::ffff:1.2.3.4",
|
|
"::ffff:0.0.0.0",
|
|
"1:2:3:4:5:6:77:88",
|
|
"::ffff:255.255.255.255",
|
|
"fe08::7:8",
|
|
"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
|
|
"::5:aef1:ffff/128",
|
|
"2001:4f8:3:ba::/112",
|
|
|
|
);
|
|
|
|
$bad = array(
|
|
/* bad */
|
|
"256.257.258.259",
|
|
"fe08::7:8interface",
|
|
"schnitzel",
|
|
"10002.3.4",
|
|
"1.2.3.4.5",
|
|
"256.0.0.0",
|
|
"260.0.0.0",
|
|
);
|
|
|
|
$ips = array_merge($ips, $bad);
|
|
$i = 0;
|
|
$errors = 0;
|
|
foreach ($ips as $ip) {
|
|
$data = array("id" => ++$i, "remote_addr" => $ip);
|
|
$r = @pg_insert($db, 'tmp_statistics', $data);
|
|
|
|
if (!$r && in_array($ip, $bad)) {
|
|
$errors++;
|
|
//echo pg_last_error($db);
|
|
}
|
|
|
|
//pg_query($db, "INSERT INTO tmp_statistics (id, remote_addr) VALUES (2, '127.0.0.1')"); // OK, record inserted
|
|
}
|
|
|
|
|
|
$r = pg_query($db, "SELECT * FROM tmp_statistics");
|
|
while (false != ($row = pg_fetch_row($r))) {
|
|
var_dump($row);
|
|
}
|
|
echo $errors, " errors caught\n";
|
|
|
|
pg_query($db, "DROP TABLE tmp_statistics");
|
|
pg_close($db);
|
|
|
|
?>
|
|
--EXPECT--
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "1"
|
|
[1]=>
|
|
string(9) "127.0.0.1"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "2"
|
|
[1]=>
|
|
string(8) "10.0.0.1"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "3"
|
|
[1]=>
|
|
string(11) "192.168.1.1"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "4"
|
|
[1]=>
|
|
string(7) "0.0.0.0"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "5"
|
|
[1]=>
|
|
string(15) "255.255.255.255"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "6"
|
|
[1]=>
|
|
string(15) "192.168.1.35/24"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "7"
|
|
[1]=>
|
|
string(3) "::1"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "8"
|
|
[1]=>
|
|
string(10) "::10.2.3.4"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "9"
|
|
[1]=>
|
|
string(15) "::ffff:10.4.3.2"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "10"
|
|
[1]=>
|
|
string(15) "1:2:3:4:5:6:7:8"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "11"
|
|
[1]=>
|
|
string(15) "::ffff:10.0.0.1"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "12"
|
|
[1]=>
|
|
string(14) "::ffff:1.2.3.4"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "13"
|
|
[1]=>
|
|
string(14) "::ffff:0.0.0.0"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "14"
|
|
[1]=>
|
|
string(17) "1:2:3:4:5:6:77:88"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "15"
|
|
[1]=>
|
|
string(22) "::ffff:255.255.255.255"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "16"
|
|
[1]=>
|
|
string(9) "fe08::7:8"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "17"
|
|
[1]=>
|
|
string(39) "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "18"
|
|
[1]=>
|
|
string(13) "::5:aef1:ffff"
|
|
}
|
|
array(2) {
|
|
[0]=>
|
|
string(2) "19"
|
|
[1]=>
|
|
string(19) "2001:4f8:3:ba::/112"
|
|
}
|
|
7 errors caught
|