iliaa Wed Oct 4 23:27:17 2006 UTC
Modified files:
/php-src/ext/pgsql pgsql.c config.m4
Log:
MFB: Added support for character sets in pg_escape_string() for PostgreSQL
8.1.4 and higher.
http://cvs.php.net/viewvc.cgi/php-src/ext/pgsql/pgsql.c?r1=1.355&r2=1.356&diff_format=u
Index: php-src/ext/pgsql/pgsql.c
diff -u php-src/ext/pgsql/pgsql.c:1.355 php-src/ext/pgsql/pgsql.c:1.356
--- php-src/ext/pgsql/pgsql.c:1.355 Tue Oct 3 15:22:54 2006
+++ php-src/ext/pgsql/pgsql.c Wed Oct 4 23:27:17 2006
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql.c,v 1.355 2006/10/03 15:22:54 bjori Exp $ */
+/* $Id: pgsql.c,v 1.356 2006/10/04 23:27:17 iliaa Exp $ */
#include <stdlib.h>
@@ -3534,20 +3534,36 @@
/* }}} */
#ifdef HAVE_PQESCAPE
-/* {{{ proto string pg_escape_string(string data)
+/* {{{ proto string pg_escape_string([resource connection,] string data)
Escape string for text/char type */
PHP_FUNCTION(pg_escape_string)
{
char *from = NULL, *to = NULL;
+ zval *pgsql_link;
+ PGconn *pgsql;
int to_len;
int from_len;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
- &from, &from_len) ==
FAILURE) {
- return;
+ int id;
+
+ if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS()
TSRMLS_CC, "rs", &pgsql_link, &from, &from_len) == SUCCESS) {
+ id = -1;
+ } else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &from,
&from_len) == SUCCESS) {
+ pgsql_link = NULL;
+ id = PGG(default_link);
+ } else {
+ WRONG_PARAM_COUNT;
}
- to = (char *)safe_emalloc(from_len, 2, 1);
- to_len = (int)PQescapeString(to, from, from_len);
+ to = (char *) safe_emalloc(from_len, 2, 1);
+
+#ifdef HAVE_PQESCAPE_CONN
+ if (pgsql_link != NULL || id != -1) {
+ ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id,
"PostgreSQL link", le_link, le_plink);
+ to_len = (int) PQescapeStringConn(pgsql, to, from,
(size_t)from_len, NULL);
+ } else
+#endif
+ to_len = (int) PQescapeString(to, from, (size_t)from_len);
+
RETURN_STRINGL(to, to_len, 0);
}
/* }}} */
http://cvs.php.net/viewvc.cgi/php-src/ext/pgsql/config.m4?r1=1.48&r2=1.49&diff_format=u
Index: php-src/ext/pgsql/config.m4
diff -u php-src/ext/pgsql/config.m4:1.48 php-src/ext/pgsql/config.m4:1.49
--- php-src/ext/pgsql/config.m4:1.48 Fri Sep 15 19:48:55 2006
+++ php-src/ext/pgsql/config.m4 Wed Oct 4 23:27:17 2006
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config.m4,v 1.48 2006/09/15 19:48:55 iliaa Exp $
+dnl $Id: config.m4,v 1.49 2006/10/04 23:27:17 iliaa Exp $
dnl
AC_DEFUN([PHP_PGSQL_CHECK_FUNCTIONS],[
@@ -91,6 +91,7 @@
AC_CHECK_LIB(pq, PQgetCopyData,AC_DEFINE(HAVE_PQGETCOPYDATA,1,[PostgreSQL
7.4 or later]))
AC_CHECK_LIB(pq,
PQsetErrorVerbosity,AC_DEFINE(HAVE_PQSETERRORVERBOSITY,1,[PostgreSQL 7.4 or
later]))
AC_CHECK_LIB(pq, PQftable,AC_DEFINE(HAVE_PQFTABLE,1,[PostgreSQL 7.4 or
later]))
+ AC_CHECK_LIB(pq, PQescapeStringConn,
AC_DEFINE(HAVE_PQESCAPE_CONN,1,[PostgreSQL 8.1 or later]))
AC_CHECK_LIB(pq,
pg_encoding_to_char,AC_DEFINE(HAVE_PGSQL_WITH_MULTIBYTE_SUPPORT,1,[Whether
libpq is compiled with --enable-multibyte]))
LIBS=$old_LIBS
LDFLAGS=$old_LDFLAGS
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php