#define PGSQL_NUM 1<<1
#define PGSQL_BOTH (PGSQL_ASSOC|PGSQL_NUM)
+#define CHECK_DEFAULT_LINK(x) if (x == -1) { php_error(E_WARNING, "%s: no PostgreSQL link opened yet", get_active_function_name()); }
function_entry pgsql_functions[] = {
PHP_FE(pg_connect, NULL)
Close a PostgreSQL connection */
PHP_FUNCTION(pg_close)
{
- zval **pgsql_link;
+ zval **pgsql_link = NULL;
int id = -1;
PGconn *pgsql;
PGLS_FETCH();
switch (ZEND_NUM_ARGS()) {
case 0:
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 1:
if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {
void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
{
- zval **pgsql_link;
+ zval **pgsql_link = NULL;
int id = -1;
PGconn *pgsql;
PGLS_FETCH();
switch(ZEND_NUM_ARGS()) {
case 0:
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 1:
if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {
Execute a query */
PHP_FUNCTION(pg_exec)
{
- zval **query, **pgsql_link;
+ zval **query, **pgsql_link = NULL;
int id = -1;
PGconn *pgsql;
PGresult *pgsql_result;
RETURN_FALSE;
}
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 2:
if (zend_get_parameters_ex(2, &pgsql_link, &query)==FAILURE) {
Enable tracing a PostgreSQL connection */
PHP_FUNCTION(pg_trace)
{
- zval **z_filename, **z_mode, **z_pgsql_link;
+ zval **z_filename, **z_mode, **z_pgsql_link = NULL;
int id = -1;
PGconn *pgsql;
char *mode = "w";
if (zend_get_parameters_ex(1, &z_filename)==FAILURE) {
RETURN_FALSE;
}
+ CHECK_DEFAULT_LINK(id);
break;
case 2:
if (zend_get_parameters_ex(2, &z_filename, &z_mode)==FAILURE) {
RETURN_FALSE;
}
+ CHECK_DEFAULT_LINK(id);
convert_to_string_ex(z_mode);
mode = Z_STRVAL_PP(z_mode);
break;
Disable tracing of a PostgreSQL connection */
PHP_FUNCTION(pg_untrace)
{
- zval **pgsql_link;
+ zval **pgsql_link = NULL;
int id = -1;
PGconn *pgsql;
PGLS_FETCH();
switch (ZEND_NUM_ARGS()) {
case 0:
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 1:
if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {
Create a large object */
PHP_FUNCTION(pg_locreate)
{
- zval **pgsql_link;
+ zval **pgsql_link = NULL;
PGconn *pgsql;
Oid pgsql_oid;
int id = -1;
switch(ZEND_NUM_ARGS()) {
case 0:
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 1:
if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {
Delete a large object */
PHP_FUNCTION(pg_lounlink)
{
- zval **pgsql_link, **oid;
+ zval **pgsql_link = NULL, **oid;
PGconn *pgsql;
Oid pgsql_oid;
int id = -1;
convert_to_long_ex(oid);
pgsql_oid = Z_LVAL_PP(oid);
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 2:
if (zend_get_parameters_ex(2, &pgsql_link, &oid)==FAILURE) {
Open a large object and return fd */
PHP_FUNCTION(pg_loopen)
{
- zval **pgsql_link, **oid, **mode;
+ zval **pgsql_link = NULL, **oid, **mode;
PGconn *pgsql;
Oid pgsql_oid;
int id = -1, pgsql_mode=0, pgsql_lofd;
convert_to_string_ex(mode);
mode_string = Z_STRVAL_PP(mode);
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 3:
if (zend_get_parameters_ex(3, &pgsql_link, &oid, &mode)==FAILURE) {
Import large object direct from filesystem */
PHP_FUNCTION(pg_loimport)
{
- zval **pgsql_link, **file_in;
+ zval **pgsql_link = NULL, **file_in;
int id = -1;
PGconn *pgsql;
Oid oid;
RETURN_FALSE;
}
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 2:
if (zend_get_parameters_ex(2, &file_in, &pgsql_link) == FAILURE) {
Export large object direct to filesystem */
PHP_FUNCTION(pg_loexport)
{
- zval **pgsql_link, **oid_id, **file_out;
+ zval **pgsql_link = NULL, **oid_id, **file_out;
int id = -1;
Oid oid;
PGconn *pgsql;
convert_to_long_ex(oid_id);
convert_to_string_ex(file_out);
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 3:
if (zend_get_parameters_ex(3, &oid_id, &file_out, &pgsql_link) == FAILURE) {
Set client encoding */
PHP_FUNCTION(pg_setclientencoding)
{
- zval **encoding, **pgsql_link;
+ zval **encoding, **pgsql_link = NULL;
int id = -1;
PGconn *pgsql;
PGLS_FETCH();
RETURN_FALSE;
}
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 2:
if (zend_get_parameters_ex(2, &pgsql_link, &encoding)==FAILURE) {
Get the current client encoding */
PHP_FUNCTION(pg_clientencoding)
{
- zval **pgsql_link;
+ zval **pgsql_link = NULL;
int id = -1;
PGconn *pgsql;
PGLS_FETCH();
switch(ZEND_NUM_ARGS()) {
case 0:
id = PGG(default_link);
+ CHECK_DEFAULT_LINK(id);
break;
case 1:
if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {