fix build with old system libsqlite (sqlite3_errstr may be missing)

This commit is contained in:
Remi Collet 2017-08-02 14:01:56 +02:00
parent b2934d2612
commit 666cb6c802
2 changed files with 8 additions and 1 deletions

View File

@ -53,6 +53,9 @@ if test $PHP_SQLITE3 != "no"; then
PHP_CHECK_LIBRARY(sqlite3,sqlite3_column_table_name,[
AC_DEFINE(SQLITE_ENABLE_COLUMN_METADATA, 1, [have sqlite3 with column metadata enabled])
])
PHP_CHECK_LIBRARY(sqlite3,sqlite3_errstr,[
AC_DEFINE(HAVE_SQLITE3_ERRSTR, 1, [have sqlite3_errstr function])
])
PHP_CHECK_LIBRARY(sqlite3,sqlite3_load_extension,
[],
@ -75,7 +78,7 @@ if test $PHP_SQLITE3 != "no"; then
debug_flags="-DSQLITE_DEBUG=1"
fi
other_flags="-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_CORE=1 -DSQLITE_ENABLE_COLUMN_METADATA=1"
other_flags="-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_CORE=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DHAVE_SQLITE3_ERRSTR=1"
dnl As long as intl is not shared we can have ICU support
if test "$PHP_INTL" = "yes" && test "$PHP_INTL_SHARED" != "yes"; then

View File

@ -148,7 +148,11 @@ PHP_METHOD(sqlite3, open)
#endif
if (rc != SQLITE_OK) {
zend_throw_exception_ex(zend_ce_exception, 0, "Unable to open database: %s",
#ifdef HAVE_SQLITE3_ERRSTR
db_obj->db ? sqlite3_errmsg(db_obj->db) : sqlite3_errstr(rc));
#else
db_obj->db ? sqlite3_errmsg(db_obj->db) : "");
#endif
if (fullpath != filename) {
efree(fullpath);
}