iliaa Thu Nov 17 09:40:11 2005 EDT
Modified files:
/php-src/ext/sqlite sqlite.c
/php-src/ext/sqlite/tests bug35248.phpt
Log:
MFB51: Fixed bug #35248 (sqlite_query() doesnt set error_msg when return
value is being used).
http://cvs.php.net/diff.php/php-src/ext/sqlite/sqlite.c?r1=1.176&r2=1.177&ty=u
Index: php-src/ext/sqlite/sqlite.c
diff -u php-src/ext/sqlite/sqlite.c:1.176 php-src/ext/sqlite/sqlite.c:1.177
--- php-src/ext/sqlite/sqlite.c:1.176 Mon Nov 14 16:52:26 2005
+++ php-src/ext/sqlite/sqlite.c Thu Nov 17 09:40:11 2005
@@ -17,7 +17,7 @@
| Marcus Boerger <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: sqlite.c,v 1.176 2005/11/14 21:52:26 tony2001 Exp $
+ $Id: sqlite.c,v 1.177 2005/11/17 14:40:11 iliaa Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -1126,7 +1126,7 @@
{
php_info_print_table_start();
php_info_print_table_header(2, "SQLite support", "enabled");
- php_info_print_table_row(2, "PECL Module version",
PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.176 2005/11/14 21:52:26 tony2001
Exp $");
+ php_info_print_table_row(2, "PECL Module version",
PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.177 2005/11/17 14:40:11 iliaa Exp
$");
php_info_print_table_row(2, "SQLite Library", sqlite_libversion());
php_info_print_table_row(2, "SQLite Encoding", sqlite_libencoding());
php_info_print_table_end();
@@ -1517,7 +1517,7 @@
/* }}} */
/* {{{ sqlite_query */
-void sqlite_query(zval *object, struct php_sqlite_db *db, char *sql, long
sql_len, int mode, int buffered, zval *return_value, struct php_sqlite_result
**prres TSRMLS_DC)
+void sqlite_query(zval *object, struct php_sqlite_db *db, char *sql, long
sql_len, int mode, int buffered, zval *return_value, struct php_sqlite_result
**prres, zval *errmsg TSRMLS_DC)
{
struct php_sqlite_result res, *rres;
int ret;
@@ -1533,6 +1533,9 @@
if (ret != SQLITE_OK) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", errtext);
+ if (errmsg) {
+ ZVAL_STRING(errmsg, errtext, 1);
+ }
sqlite_freemem(errtext);
goto terminate;
} else if (!res.vm) { /* empty query */
@@ -1633,7 +1636,7 @@
return;
}
- sqlite_query(object, db, sql, sql_len, (int)mode, 0, return_value, NULL
TSRMLS_CC);
+ sqlite_query(object, db, sql, sql_len, (int)mode, 0, return_value,
NULL, errmsg TSRMLS_CC);
}
/* }}} */
@@ -1774,7 +1777,7 @@
return;
}
- sqlite_query(object, db, sql, sql_len, (int)mode, 1, return_value, NULL
TSRMLS_CC);
+ sqlite_query(object, db, sql, sql_len, (int)mode, 1, return_value,
NULL, errmsg TSRMLS_CC);
}
/* }}} */
@@ -2209,7 +2212,7 @@
}
rres = (struct php_sqlite_result *)emalloc(sizeof(*rres));
- sqlite_query(NULL, db, sql, sql_len, (int)mode, 0, NULL, &rres
TSRMLS_CC);
+ sqlite_query(NULL, db, sql, sql_len, (int)mode, 0, NULL, &rres, NULL
TSRMLS_CC);
if (db->last_err_code != SQLITE_OK) {
if (rres) {
efree(rres);
@@ -2342,7 +2345,7 @@
}
rres = (struct php_sqlite_result *)emalloc(sizeof(*rres));
- sqlite_query(NULL, db, sql, sql_len, PHPSQLITE_NUM, 0, NULL, &rres
TSRMLS_CC);
+ sqlite_query(NULL, db, sql, sql_len, PHPSQLITE_NUM, 0, NULL, &rres,
NULL TSRMLS_CC);
if (db->last_err_code != SQLITE_OK) {
if (rres) {
efree(rres);
http://cvs.php.net/diff.php/php-src/ext/sqlite/tests/bug35248.phpt?r1=1.1&r2=1.2&ty=u
Index: php-src/ext/sqlite/tests/bug35248.phpt
diff -u /dev/null php-src/ext/sqlite/tests/bug35248.phpt:1.2
--- /dev/null Thu Nov 17 09:40:11 2005
+++ php-src/ext/sqlite/tests/bug35248.phpt Thu Nov 17 09:40:11 2005
@@ -0,0 +1,15 @@
+--TEST--
+Bug #35248 (sqlite_query does not return parse error message)
+--SKIPIF--
+<?php if (!extension_loaded("sqlite")) print "skip"; ?>
+--FILE--
+<?php
+ $db = sqlite_open(":memory:");
+ $res = @sqlite_query($db, "asdfesdfa", SQLITE_NUM, $err);
+ var_dump($err);
+ $res = @sqlite_unbuffered_query($db, "asdfesdfa", SQLITE_NUM, $err);
+ var_dump($err);
+?>
+--EXPECT--
+string(30) "near "asdfesdfa": syntax error"
+string(30) "near "asdfesdfa": syntax error"
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php