summaryrefslogtreecommitdiff
path: root/ext/sqlite3/sqlite3.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r--ext/sqlite3/sqlite3.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 9c14dabc66..23d0b97b43 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -579,13 +579,20 @@ PHP_METHOD(sqlite3, query)
static void sqlite_value_to_zval(sqlite3_stmt *stmt, int column, zval *data) /* {{{ */
{
+ sqlite3_int64 val;
+
switch (sqlite3_column_type(stmt, column)) {
case SQLITE_INTEGER:
- if ((sqlite3_column_int64(stmt, column)) >= INT_MAX || sqlite3_column_int64(stmt, column) <= INT_MIN) {
+ val = sqlite3_column_int64(stmt, column);
+#if LONG_MAX <= 2147483647
+ if (val > ZEND_LONG_MAX || val < ZEND_LONG_MIN) {
ZVAL_STRINGL(data, (char *)sqlite3_column_text(stmt, column), sqlite3_column_bytes(stmt, column));
} else {
- ZVAL_LONG(data, sqlite3_column_int64(stmt, column));
+#endif
+ ZVAL_LONG(data, val);
+#if LONG_MAX <= 2147483647
}
+#endif
break;
case SQLITE_FLOAT: