diff options
| author | Rui Hirokawa <hirokawa@php.net> | 2000-07-02 08:59:44 +0000 |
|---|---|---|
| committer | Rui Hirokawa <hirokawa@php.net> | 2000-07-02 08:59:44 +0000 |
| commit | 074f52f38298c771064063389103731509ad728b (patch) | |
| tree | 280e03fdb7f260e2230ae0516e0ef164e82ec3c6 /ext/pgsql/pgsql.c | |
| parent | 4300d396b4688c5b378b3593bf22b4fd27dca81f (diff) | |
| download | php-git-074f52f38298c771064063389103731509ad728b.tar.gz | |
added new functions: pg_setclientencoding, pg_clientencoding in Postgres-7.0.
Diffstat (limited to 'ext/pgsql/pgsql.c')
| -rw-r--r-- | ext/pgsql/pgsql.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 0391c24785..b25f983786 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -74,6 +74,10 @@ function_entry pgsql_functions[] = { PHP_FE(pg_loreadall, NULL) PHP_FE(pg_loimport, NULL) PHP_FE(pg_loexport, NULL) +#if HAVE_PQCLIENTENCODING + PHP_FE(pg_clientencoding, NULL) + PHP_FE(pg_setclientencoding, NULL) +#endif {NULL, NULL, NULL} }; @@ -1598,6 +1602,76 @@ PHP_FUNCTION(pg_loexport) } /* }}} */ +#if HAVE_PQCLIENTENCODING + +/* {{{ proto int pg_setclientencoding([int connection,] string encoding) + Set client encoding */ +PHP_FUNCTION(pg_setclientencoding) +{ + zval **encoding, **pgsql_link; + int id = -1; + PGconn *pgsql; + PGLS_FETCH(); + + switch(ZEND_NUM_ARGS()) { + case 1: + if (zend_get_parameters_ex(1, &encoding)==FAILURE) { + RETURN_FALSE; + } + id = PGG(default_link); + break; + case 2: + if (zend_get_parameters_ex(2, &pgsql_link, &encoding)==FAILURE) { + RETURN_FALSE; + } + break; + default: + WRONG_PARAM_COUNT; + break; + } + + ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); + + convert_to_string_ex(encoding); + return_value->value.lval = PQsetClientEncoding(pgsql, Z_STRVAL_PP(encoding)); + return_value->type = IS_LONG; + +} +/* }}} */ + +/* {{{ proto string pg_clientencoding([int connection]) + Get the current client encoding */ +PHP_FUNCTION(pg_clientencoding) +{ + zval **pgsql_link; + int id = -1; + PGconn *pgsql; + PGLS_FETCH(); + + switch(ZEND_NUM_ARGS()) { + case 0: + id = PGG(default_link); + break; + case 1: + if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) { + RETURN_FALSE; + } + break; + default: + WRONG_PARAM_COUNT; + break; + } + + ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); + + return_value->value.str.val + = (char *) pg_encoding_to_char(PQclientEncoding(pgsql)); + return_value->value.str.len = strlen(return_value->value.str.val); + return_value->value.str.val = (char *) estrdup(return_value->value.str.val); + return_value->type = IS_STRING; +} +/* }}} */ +#endif #endif |
