@@ -289,6 +289,56 @@ PHP_METHOD(sqlite3, lastErrorCode)
289
289
}
290
290
/* }}} */
291
291
292
+ /* {{{ proto int SQLite3::lastExtendedErrorCode()
293
+ Returns the numeric extended result code of the most recent failed sqlite API call for the database connection. */
294
+ PHP_METHOD (sqlite3 , lastExtendedErrorCode )
295
+ {
296
+ php_sqlite3_db_object * db_obj ;
297
+ zval * object = ZEND_THIS ;
298
+ db_obj = Z_SQLITE3_DB_P (object );
299
+
300
+ SQLITE3_CHECK_INITIALIZED (db_obj , db_obj -> db , SQLite3 )
301
+
302
+ if (zend_parse_parameters_none () == FAILURE ) {
303
+ return ;
304
+ }
305
+
306
+ if (db_obj -> initialised ) {
307
+ RETURN_LONG (sqlite3_extended_errcode (db_obj -> db ));
308
+ } else {
309
+ RETURN_LONG (0 );
310
+ }
311
+ }
312
+ /* }}} */
313
+
314
+ /* {{{ proto bool SQLite3::enableExtendedResultCodes([bool enable = true])
315
+ Turns on or off the extended result codes feature of SQLite. */
316
+ PHP_METHOD (sqlite3 , enableExtendedResultCodes )
317
+ {
318
+ php_sqlite3_db_object * db_obj ;
319
+ zval * object = ZEND_THIS ;
320
+ zend_bool enable = 1 ;
321
+ db_obj = Z_SQLITE3_DB_P (object );
322
+ int ret ;
323
+
324
+ SQLITE3_CHECK_INITIALIZED (db_obj , db_obj -> db , SQLite3 )
325
+
326
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "|b" , & enable ) == FAILURE ) {
327
+ return ;
328
+ }
329
+
330
+ if (db_obj -> initialised ) {
331
+ ret = sqlite3_extended_result_codes (db_obj -> db , enable ? 1 : 0 );
332
+ if (ret == SQLITE_OK )
333
+ {
334
+ RETURN_TRUE ;
335
+ }
336
+ }
337
+
338
+ RETURN_FALSE ;
339
+ }
340
+ /* }}} */
341
+
292
342
/* {{{ proto string SQLite3::lastErrorMsg()
293
343
Returns english text describing the most recent failed sqlite API call for the database connection. */
294
344
PHP_METHOD (sqlite3 , lastErrorMsg )
@@ -2157,35 +2207,41 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_fetcharray, 0, 0, 0)
2157
2207
ZEND_ARG_INFO (0 , mode )
2158
2208
ZEND_END_ARG_INFO ()
2159
2209
2210
+ ZEND_BEGIN_ARG_INFO_EX (arginfo_sqlite3_enableextended , 0 , 0 , 1 )
2211
+ ZEND_ARG_INFO (0 , enable )
2212
+ ZEND_END_ARG_INFO ()
2213
+
2160
2214
ZEND_BEGIN_ARG_INFO (arginfo_sqlite3_void , 0 )
2161
2215
ZEND_END_ARG_INFO ()
2162
2216
/* }}} */
2163
2217
2164
2218
/* {{{ php_sqlite3_class_methods */
2165
2219
static const zend_function_entry php_sqlite3_class_methods [] = {
2166
- PHP_ME (sqlite3 , open , arginfo_sqlite3_open , ZEND_ACC_PUBLIC )
2167
- PHP_ME (sqlite3 , close , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2168
- PHP_ME (sqlite3 , exec , arginfo_sqlite3_query , ZEND_ACC_PUBLIC )
2169
- PHP_ME (sqlite3 , version , arginfo_sqlite3_void , ZEND_ACC_PUBLIC |ZEND_ACC_STATIC )
2170
- PHP_ME (sqlite3 , lastInsertRowID , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2171
- PHP_ME (sqlite3 , lastErrorCode , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2172
- PHP_ME (sqlite3 , lastErrorMsg , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2173
- PHP_ME (sqlite3 , busyTimeout , arginfo_sqlite3_busytimeout , ZEND_ACC_PUBLIC )
2220
+ PHP_ME (sqlite3 , open , arginfo_sqlite3_open , ZEND_ACC_PUBLIC )
2221
+ PHP_ME (sqlite3 , close , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2222
+ PHP_ME (sqlite3 , exec , arginfo_sqlite3_query , ZEND_ACC_PUBLIC )
2223
+ PHP_ME (sqlite3 , version , arginfo_sqlite3_void , ZEND_ACC_PUBLIC |ZEND_ACC_STATIC )
2224
+ PHP_ME (sqlite3 , lastInsertRowID , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2225
+ PHP_ME (sqlite3 , lastErrorCode , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2226
+ PHP_ME (sqlite3 , lastExtendedErrorCode , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2227
+ PHP_ME (sqlite3 , enableExtendedResultCodes , arginfo_sqlite3_enableextended , ZEND_ACC_PUBLIC )
2228
+ PHP_ME (sqlite3 , lastErrorMsg , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2229
+ PHP_ME (sqlite3 , busyTimeout , arginfo_sqlite3_busytimeout , ZEND_ACC_PUBLIC )
2174
2230
#ifndef SQLITE_OMIT_LOAD_EXTENSION
2175
- PHP_ME (sqlite3 , loadExtension , arginfo_sqlite3_loadextension , ZEND_ACC_PUBLIC )
2231
+ PHP_ME (sqlite3 , loadExtension , arginfo_sqlite3_loadextension , ZEND_ACC_PUBLIC )
2176
2232
#endif
2177
- PHP_ME (sqlite3 , changes , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2178
- PHP_ME (sqlite3 , escapeString , arginfo_sqlite3_escapestring , ZEND_ACC_PUBLIC |ZEND_ACC_STATIC )
2179
- PHP_ME (sqlite3 , prepare , arginfo_sqlite3_query , ZEND_ACC_PUBLIC )
2180
- PHP_ME (sqlite3 , query , arginfo_sqlite3_query , ZEND_ACC_PUBLIC )
2181
- PHP_ME (sqlite3 , querySingle , arginfo_sqlite3_querysingle , ZEND_ACC_PUBLIC )
2182
- PHP_ME (sqlite3 , createFunction , arginfo_sqlite3_createfunction , ZEND_ACC_PUBLIC )
2183
- PHP_ME (sqlite3 , createAggregate , arginfo_sqlite3_createaggregate , ZEND_ACC_PUBLIC )
2184
- PHP_ME (sqlite3 , createCollation , arginfo_sqlite3_createcollation , ZEND_ACC_PUBLIC )
2185
- PHP_ME (sqlite3 , openBlob , arginfo_sqlite3_openblob , ZEND_ACC_PUBLIC )
2186
- PHP_ME (sqlite3 , enableExceptions , arginfo_sqlite3_enableexceptions , ZEND_ACC_PUBLIC )
2233
+ PHP_ME (sqlite3 , changes , arginfo_sqlite3_void , ZEND_ACC_PUBLIC )
2234
+ PHP_ME (sqlite3 , escapeString , arginfo_sqlite3_escapestring , ZEND_ACC_PUBLIC |ZEND_ACC_STATIC )
2235
+ PHP_ME (sqlite3 , prepare , arginfo_sqlite3_query , ZEND_ACC_PUBLIC )
2236
+ PHP_ME (sqlite3 , query , arginfo_sqlite3_query , ZEND_ACC_PUBLIC )
2237
+ PHP_ME (sqlite3 , querySingle , arginfo_sqlite3_querysingle , ZEND_ACC_PUBLIC )
2238
+ PHP_ME (sqlite3 , createFunction , arginfo_sqlite3_createfunction , ZEND_ACC_PUBLIC )
2239
+ PHP_ME (sqlite3 , createAggregate , arginfo_sqlite3_createaggregate , ZEND_ACC_PUBLIC )
2240
+ PHP_ME (sqlite3 , createCollation , arginfo_sqlite3_createcollation , ZEND_ACC_PUBLIC )
2241
+ PHP_ME (sqlite3 , openBlob , arginfo_sqlite3_openblob , ZEND_ACC_PUBLIC )
2242
+ PHP_ME (sqlite3 , enableExceptions , arginfo_sqlite3_enableexceptions , ZEND_ACC_PUBLIC )
2187
2243
#if SQLITE_VERSION_NUMBER >= 3006011
2188
- PHP_ME (sqlite3 , backup , arginfo_sqlite3_backup , ZEND_ACC_PUBLIC )
2244
+ PHP_ME (sqlite3 , backup , arginfo_sqlite3_backup , ZEND_ACC_PUBLIC )
2189
2245
#endif
2190
2246
/* Aliases */
2191
2247
PHP_MALIAS (sqlite3 , __construct , open , arginfo_sqlite3_open , ZEND_ACC_PUBLIC )
0 commit comments