mirror of
https://github.com/php/php-src.git
synced 2024-10-03 07:46:12 +00:00
56854511d8
Use string escape for exotic types that allows to handle any data types. i.e. Array, JSON, JSONB, etc will work. Add escape only query for better performance which removes meta data look up. Limitations forced by pg_convert() can be avoided with this. PGSQL_DML_ESCAPE constant is added for it.
29 lines
779 B
PHP
29 lines
779 B
PHP
--TEST--
|
|
PostgreSQL pg_update() (9.0+)
|
|
--SKIPIF--
|
|
<?php
|
|
include("skipif.inc");
|
|
skip_bytea_not_hex();
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
error_reporting(E_ALL);
|
|
|
|
include 'config.inc';
|
|
|
|
$db = pg_connect($conn_str);
|
|
pg_query($db, "SET standard_conforming_strings = 0");
|
|
|
|
$fields = array('num'=>'1234', 'str'=>'ABC', 'bin'=>'XYZ');
|
|
$ids = array('num'=>'1234');
|
|
|
|
pg_update($db, $table_name, $fields, $ids) or print "Error in test 1\n";
|
|
echo pg_update($db, $table_name, $fields, $ids, PGSQL_DML_STRING)."\n";
|
|
echo pg_update($db, $table_name, $fields, $ids, PGSQL_DML_STRING|PGSQL_DML_ESCAPE)."\n";
|
|
|
|
echo "Ok\n";
|
|
?>
|
|
--EXPECT--
|
|
UPDATE "php_pgsql_test" SET "num"=1234,"str"=E'ABC',"bin"=E'\\x58595a' WHERE "num"=1234;
|
|
UPDATE "php_pgsql_test" SET "num"='1234',"str"='ABC',"bin"='XYZ' WHERE "num"='1234';
|
|
Ok
|