Edit report at https://bugs.php.net/bug.php?id=63344&edit=1
ID: 63344 Updated by: yohg...@php.net Reported by: peter dot kehl at gmail dot com Summary: pg_query_params() doesn't pass parts of strings past zero byte character -Status: Assigned +Status: Wont fix Type: Feature/Change Request Package: PostgreSQL related Operating System: CentOS 6.2; possibly irrelevant PHP Version: 5.4.8 Assigned To: yohgaki Block user comment: N Private report: N New Comment: We discussed this issue and decided not to implement this feature. You cannot insert string contains null as UTF-8. If you are using bytea, make sure you use pg_escape_bytea()/pg_unescape_bytea() even with prepared query type API. We may implement API supports direct bytea in the future, but it requires libpq support which is not available now. Previous Comments: ------------------------------------------------------------------------ [2013-06-29 20:09:25] yohg...@php.net This requires API change. Change bug type. ------------------------------------------------------------------------ [2013-04-16 19:32:18] yohg...@php.net I realized this issue years ago. We need to add correct length parameter for string. The reason why I didn't fix this is there might be users using pg_escate_bytea() for prepared queries. I can simply fix, but there is slight BC issue. ------------------------------------------------------------------------ [2012-10-25 01:00:30] peter dot kehl at gmail dot com OK, pg_query_params() works as defined by Postgres. Thank you. However, I suggest a change of Example #1 at http://www.php.net/serialize. That example saves a result of serialize() to an ODBC database. I have no way of testing whether that works with strings containing zero byte(s). Anyway, that example may lead people to save a result of serialize() using Postgres (or MSSQL mssql_query()), which fail. Please change that example to use base64_encode() and base64_decode(), and add a note that serialize() generates a string which may contain zero byte(s). ------------------------------------------------------------------------ [2012-10-24 06:35:04] larue...@php.net The following patch has been added/updated: Patch Name: bug63344.patch Revision: 1351060504 URL: https://bugs.php.net/patch-display.php?bug=63344&patch=bug63344.patch&revision=1351060504 ------------------------------------------------------------------------ [2012-10-24 06:34:33] larue...@php.net according to http://www.postgresql.org/docs/8.0/static/libpq-exec.html the current PHP's wrapper of PQexecParams doesn't support binary data. a simple fix is attached ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=63344 -- Edit this bug report at https://bugs.php.net/bug.php?id=63344&edit=1