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

Reply via email to