projects
/
m6w6
/
ext-pq
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
typo
[m6w6/ext-pq]
/
src
/
php_pq_params.c
diff --git
a/src/php_pq_params.c
b/src/php_pq_params.c
index 0f7ba503adbc6b8df6d5b142d77e848f1ccd0179..259fbb9a13b1c4b6e3c2d243e5106f39c1e9763d 100644
(file)
--- a/
src/php_pq_params.c
+++ b/
src/php_pq_params.c
@@
-75,14
+75,19
@@
unsigned php_pq_params_add_type_oid(php_pq_params_t *p, Oid type)
static zend_string *object_param_to_string(php_pq_params_t *p, zval *zobj, Oid type)
{
static zend_string *object_param_to_string(php_pq_params_t *p, zval *zobj, Oid type)
{
+#if PHP_PQ_HAVE_PHP_JSON_H && defined(PHP_PQ_OID_JSON)
smart_str str = {0};
smart_str str = {0};
+#endif
switch (type) {
#if PHP_PQ_HAVE_PHP_JSON_H && defined(PHP_PQ_OID_JSON)
switch (type) {
#if PHP_PQ_HAVE_PHP_JSON_H && defined(PHP_PQ_OID_JSON)
-#
ifdef PHP_PQ_OID_JSONB
+# ifdef PHP_PQ_OID_JSONB
case PHP_PQ_OID_JSONB:
case PHP_PQ_OID_JSONB:
-#
endif
+# endif
case PHP_PQ_OID_JSON:
case PHP_PQ_OID_JSON:
+# if PHP_VERSION_ID >= 70100
+ JSON_G(encode_max_depth) = PHP_JSON_PARSER_DEFAULT_DEPTH;
+# endif
php_json_encode(&str, zobj, PHP_JSON_UNESCAPED_UNICODE);
smart_str_0(&str);
return str.s;
php_json_encode(&str, zobj, PHP_JSON_UNESCAPED_UNICODE);
smart_str_0(&str);
return str.s;
@@
-90,10
+95,10
@@
static zend_string *object_param_to_string(php_pq_params_t *p, zval *zobj, Oid t
case PHP_PQ_OID_DATE:
return php_pqdt_to_string(zobj, "Y-m-d");
case PHP_PQ_OID_DATE:
return php_pqdt_to_string(zobj, "Y-m-d");
-
+#ifdef PHP_PQ_OID_ABSTIME
case PHP_PQ_OID_ABSTIME:
return php_pqdt_to_string(zobj, "Y-m-d H:i:s");
case PHP_PQ_OID_ABSTIME:
return php_pqdt_to_string(zobj, "Y-m-d H:i:s");
-
+#endif
case PHP_PQ_OID_TIMESTAMP:
return php_pqdt_to_string(zobj, "Y-m-d H:i:s.u");
case PHP_PQ_OID_TIMESTAMP:
return php_pqdt_to_string(zobj, "Y-m-d H:i:s.u");
@@
-118,7
+123,7
@@
static int apply_to_param_from_array(zval *zparam, void *arg_ptr)
struct apply_to_param_from_array_arg subarg, *arg = arg_ptr;
char *tmp;
size_t len;
struct apply_to_param_from_array_arg subarg, *arg = arg_ptr;
char *tmp;
size_t len;
- zend_string *str;
+ zend_string *str
, *tmpstr
;
if (arg->index++) {
smart_str_appendc(arg->buffer, arg->delim);
if (arg->index++) {
smart_str_appendc(arg->buffer, arg->delim);
@@
-128,8
+133,8
@@
static int apply_to_param_from_array(zval *zparam, void *arg_ptr)
zval ztype, rv;
ZVAL_LONG(&ztype, arg->type);
zval ztype, rv;
ZVAL_LONG(&ztype, arg->type);
-
zend_call_method_with_2_params(arg->zconv, NULL, NULL, "converttostring"
, &rv, zparam, &ztype);
- str = zval_get_string(&rv);
+
php_pq_call_method(arg->zconv, "converttostring", 2
, &rv, zparam, &ztype);
+
tmp
str = zval_get_string(&rv);
zval_ptr_dtor(&rv);
goto append_string;
zval_ptr_dtor(&rv);
goto append_string;
@@
-171,15
+176,20
@@
static int apply_to_param_from_array(zval *zparam, void *arg_ptr)
break;
case IS_OBJECT:
break;
case IS_OBJECT:
- if ((str = object_param_to_string(arg->params, zparam, arg->type))) {
+ if ((
tmp
str = object_param_to_string(arg->params, zparam, arg->type))) {
goto append_string;
}
/* no break */
default:
goto append_string;
}
/* no break */
default:
- str = zval_get_string(zparam);
+
tmp
str = zval_get_string(zparam);
append_string:
append_string:
- str = php_addslashes(str, 1);
+#if PHP_VERSION_ID < 70300
+ str = php_addslashes(tmpstr, 1);
+#else
+ str = php_addslashes(tmpstr);
+ zend_string_release(tmpstr);
+#endif
smart_str_appendc(arg->buffer, '"');
smart_str_appendl(arg->buffer, str->val, str->len);
smart_str_appendc(arg->buffer, '"');
smart_str_appendc(arg->buffer, '"');
smart_str_appendl(arg->buffer, str->val, str->len);
smart_str_appendc(arg->buffer, '"');
@@
-198,9
+208,9
@@
static zend_string *array_param_to_string(php_pq_params_t *p, zval *zarr, Oid ty
switch (type) {
#if PHP_PQ_HAVE_PHP_JSON_H && defined(PHP_PQ_OID_JSON)
switch (type) {
#if PHP_PQ_HAVE_PHP_JSON_H && defined(PHP_PQ_OID_JSON)
-#
ifdef PHP_PQ_OID_JSONB
+# ifdef PHP_PQ_OID_JSONB
case PHP_PQ_OID_JSONB:
case PHP_PQ_OID_JSONB:
-#
endif
+# endif
case PHP_PQ_OID_JSON:
php_json_encode(&s, zarr, PHP_JSON_UNESCAPED_UNICODE);
break;
case PHP_PQ_OID_JSON:
php_json_encode(&s, zarr, PHP_JSON_UNESCAPED_UNICODE);
break;
@@
-233,7
+243,7
@@
static void php_pq_params_set_param(php_pq_params_t *p, unsigned index, zval *zp
ZVAL_NULL(&rv);
ZVAL_LONG(&ztype, type);
ZVAL_NULL(&rv);
ZVAL_LONG(&ztype, type);
-
zend_call_method_with_2_params(zconv, NULL, NULL, "converttostring"
, &rv, zpp, &ztype);
+
php_pq_call_method(zconv, "converttostring", 2
, &rv, zpp, &ztype);
convert_to_string(&rv);
p->param.strings[index] = Z_STRVAL_P(&rv);
zend_hash_next_index_insert(&p->param.dtor, &rv);
convert_to_string(&rv);
p->param.strings[index] = Z_STRVAL_P(&rv);
zend_hash_next_index_insert(&p->param.dtor, &rv);
@@
-297,7
+307,8
@@
static int apply_to_params(zval *zp, void *arg_ptr)
{
struct apply_to_params_arg *arg = arg_ptr;
{
struct apply_to_params_arg *arg = arg_ptr;
- SEPARATE_ZVAL_IF_NOT_REF(zp);
+ ZVAL_DEREF(zp);
+ SEPARATE_ZVAL(zp);
php_pq_params_set_param(arg->params, arg->index++, zp);
return ZEND_HASH_APPLY_KEEP;
}
php_pq_params_set_param(arg->params, arg->index++, zp);
return ZEND_HASH_APPLY_KEEP;
}