ZEND_BEGIN_ARG_INFO_EX(ai_pqstm_construct, 0, 0, 3)
- ZEND_ARG_OBJ_INFO(0, Connection, pq\\Connection, 0)
+ ZEND_ARG_OBJ_INFO(0, connection, pq\\Connection, 0)
ZEND_ARG_INFO(0, name)
ZEND_ARG_INFO(0, query)
ZEND_ARG_ARRAY_INFO(0, types, 1)
php_pqstm_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
php_pqconn_object_t *conn_obj = zend_object_store_get_object(zconn TSRMLS_CC);
- if (!conn_obj->intern) {
+ if (obj->intern) {
+ throw_exce(EX_BAD_METHODCALL TSRMLS_CC, "pq\\Statement already initialized");
+ } else if (!conn_obj->intern) {
throw_exce(EX_UNINITIALIZED TSRMLS_CC, "pq\\Connection not initialized");
} else {
php_pq_params_t *params = php_pq_params_init(&conn_obj->intern->converters, ztypes ? Z_ARRVAL_P(ztypes) : NULL, NULL TSRMLS_CC);
if (!rc) {
throw_exce(EX_IO TSRMLS_CC, "Failed to execute statement (%s)", PHP_PQerrorMessage(obj->intern->conn->intern->conn));
+#if HAVE_PQSETSINGLEROWMODE
} else if (obj->intern->conn->intern->unbuffered && !PQsetSingleRowMode(obj->intern->conn->intern->conn)) {
throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to enable unbuffered mode (%s)", PHP_PQerrorMessage(obj->intern->conn->intern->conn));
+#endif
} else {
php_pq_callback_recurse(&obj->intern->conn->intern->onevent, &resolver TSRMLS_CC);
obj->intern->conn->intern->poller = PQconsumeInput;