summaryrefslogtreecommitdiff
path: root/ext/pdo_sqlite/sqlite_statement.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2005-02-27 05:20:19 +0000
committerWez Furlong <wez@php.net>2005-02-27 05:20:19 +0000
commitae5649598dcbb3b3b105344452c782bf0f289739 (patch)
treee03893cec670b02478808f8913d6b4148455ec2c /ext/pdo_sqlite/sqlite_statement.c
parent58f61a16eea562cfed04c19cc319a608b2e9f345 (diff)
downloadphp-git-ae5649598dcbb3b3b105344452c782bf0f289739.tar.gz
upgrade bundled sqlite to sqlite 3.1.3
Diffstat (limited to 'ext/pdo_sqlite/sqlite_statement.c')
-rw-r--r--ext/pdo_sqlite/sqlite_statement.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/ext/pdo_sqlite/sqlite_statement.c b/ext/pdo_sqlite/sqlite_statement.c
index 38d091c9d7..1c2c02ca30 100644
--- a/ext/pdo_sqlite/sqlite_statement.c
+++ b/ext/pdo_sqlite/sqlite_statement.c
@@ -176,15 +176,16 @@ static int pdo_sqlite_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC)
stmt->columns[colno].namelen = strlen(stmt->columns[colno].name);
stmt->columns[colno].maxlen = 0xffffffff;
stmt->columns[colno].precision = 0;
-
+
switch (sqlite3_column_type(S->stmt, colno)) {
case SQLITE_INTEGER:
case SQLITE_FLOAT:
- case SQLITE_TEXT:
+ case SQLITE3_TEXT:
case SQLITE_BLOB:
stmt->columns[colno].param_type = PDO_PARAM_STR;
break;
case SQLITE_NULL:
+ default:
stmt->columns[colno].param_type = PDO_PARAM_NULL;
break;
}
@@ -214,10 +215,20 @@ static int pdo_sqlite_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsi
*ptr = (char*)sqlite3_column_blob(S->stmt, colno);
*len = sqlite3_column_bytes(S->stmt, colno);
return 1;
+
+ case SQLITE3_TEXT:
+ *ptr = (char*)sqlite3_column_text(S->stmt, colno);
+ *len = sqlite3_column_bytes(S->stmt, colno);
+ if (*len) {
+ /* sqlite3.h says "the NUL terminator is included in the byte count
+ * for TEXT values" */
+ *len--;
+ }
+ return 1;
default:
*ptr = (char*)sqlite3_column_text(S->stmt, colno);
- *len = strlen(*ptr);
+ *len = sqlite3_column_bytes(S->stmt, colno);
return 1;
}
}