Fix build script and add usage example php script
This commit is contained in:
parent
f4e37461fc
commit
2103275301
3 changed files with 109 additions and 19 deletions
49
build.sh
49
build.sh
|
|
@ -1,5 +1,26 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# SQLite3 compile options
|
||||||
|
#
|
||||||
|
|
||||||
|
CFLAGS=" \
|
||||||
|
-DSQLITE_HAS_CODEC \
|
||||||
|
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
|
||||||
|
-DSQLITE_ENABLE_COLUMN_METADATA \
|
||||||
|
-DSQLITE_ENABLE_STAT3 \
|
||||||
|
-DSQLITE_ENABLE_RTREE \
|
||||||
|
-DSQLITE_ENABLE_FTS3 \
|
||||||
|
-DSQLITE_ENABLE_FTS3_PARENTHESIS \
|
||||||
|
-DSQLITE_ENABLE_FTS4 \
|
||||||
|
-DSQLITE_SECURE_DELETE \
|
||||||
|
-DSQLITE_ENABLE_ICU \
|
||||||
|
-DSQLITE_SOUNDEX \
|
||||||
|
-DSQLITE_DEFAULT_FOREIGN_KEYS=1 \
|
||||||
|
-I/usr/local/include"
|
||||||
|
|
||||||
|
LDFLAGS="-lcrypto -licuuc -licui18n -L/usr/local/lib"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Get PHP source code (installed version)
|
# Get PHP source code (installed version)
|
||||||
#
|
#
|
||||||
|
|
@ -62,21 +83,8 @@ if [ ! -f "${SQLCIPHER_SRC}/sqlite3.c" ]; then
|
||||||
./configure \
|
./configure \
|
||||||
--disable-shared \
|
--disable-shared \
|
||||||
--enable-tempstore=yes \
|
--enable-tempstore=yes \
|
||||||
CFLAGS=" \
|
CFLAGS="${CFLAGS}" \
|
||||||
-DSQLITE_HAS_CODEC \
|
LDFLAGS="${LDFLAGS}"
|
||||||
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
|
|
||||||
-DSQLITE_ENABLE_COLUMN_METADATA \
|
|
||||||
-DSQLITE_ENABLE_STAT3 \
|
|
||||||
-DSQLITE_ENABLE_RTREE \
|
|
||||||
-DSQLITE_ENABLE_FTS3 \
|
|
||||||
-DSQLITE_ENABLE_FTS3_PARENTHESIS \
|
|
||||||
-DSQLITE_ENABLE_FTS4 \
|
|
||||||
-DSQLITE_SECURE_DELETE \
|
|
||||||
-DSQLITE_ENABLE_ICU \
|
|
||||||
-DSQLITE_SOUNDEX \
|
|
||||||
-DSQLITE_DEFAULT_FOREIGN_KEYS=1 \
|
|
||||||
-I/usr/local/include" \
|
|
||||||
LDFLAGS="-lcrypto -licuuc -licui18n -L/usr/local/lib"
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
@ -148,7 +156,12 @@ done
|
||||||
# Build pdo_sqlcipher
|
# Build pdo_sqlcipher
|
||||||
#
|
#
|
||||||
|
|
||||||
cp -r "${SQLCIPHER_SRC}" "${BUILD_DIR}/sqlcipher"
|
cp "${SQLCIPHER_SRC}/sqlite3.c" "${BUILD_DIR}/sqlite3.c"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp "${SQLCIPHER_SRC}/sqlite3.h" "${BUILD_DIR}/sqlite3.h"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
@ -170,7 +183,9 @@ if [ $? -ne 0 ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
./configure
|
./configure \
|
||||||
|
CFLAGS="${CFLAGS}" \
|
||||||
|
LDFLAGS="${LDFLAGS}"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,9 @@ if test "$PHP_PDO_SQLCIPHER" != "no"; then
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT($pdo_inc_path)
|
AC_MSG_RESULT($pdo_inc_path)
|
||||||
|
|
||||||
php_pdo_sqlcipher_sources_core="pdo_sqlcipher.c sqlite_driver.c sqlite_statement.c sqlcipher/sqlite3.c"
|
php_pdo_sqlcipher_sources_core="pdo_sqlcipher.c sqlite_driver.c sqlite_statement.c sqlite3.c"
|
||||||
|
|
||||||
PHP_NEW_EXTENSION(pdo_sqlcipher, $php_pdo_sqlcipher_sources_core, $ext_shared,,-I$pdo_inc_path -Isqlcipher)
|
PHP_NEW_EXTENSION(pdo_sqlcipher, $php_pdo_sqlcipher_sources_core, $ext_shared,,-I$pdo_inc_path)
|
||||||
|
|
||||||
ifdef([PHP_ADD_EXTENSION_DEP],
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
||||||
[
|
[
|
||||||
|
|
|
||||||
75
example.php
Normal file
75
example.php
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// database file name
|
||||||
|
$database = "example.db";
|
||||||
|
|
||||||
|
// database password
|
||||||
|
$password = "123456";
|
||||||
|
|
||||||
|
// returns new instance of PDO object
|
||||||
|
function getPDO($database) {
|
||||||
|
try {
|
||||||
|
$pdo = new PDO("sqlcipher:" . $database);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
die($e->getMessage() . PHP_EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $pdo;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Create new example database with one table
|
||||||
|
// (it can be done through sqlcipher command line client)
|
||||||
|
//
|
||||||
|
|
||||||
|
$sql = "PRAGMA key = '$password';
|
||||||
|
PRAGMA encoding = \"UTF-8\";
|
||||||
|
PRAGMA auto_vacuum = 2;
|
||||||
|
PRAGMA incremental_vacuum(10);
|
||||||
|
|
||||||
|
CREATE TABLE `test` (
|
||||||
|
`id` INTEGER NOT NULL PRIMARY KEY,
|
||||||
|
`value` TEXT NOT NULL
|
||||||
|
);";
|
||||||
|
|
||||||
|
$pdo = getPDO($database);
|
||||||
|
|
||||||
|
if ($pdo->exec($sql) === false) {
|
||||||
|
$error = $pdo->errorInfo();
|
||||||
|
die($error[0] . ": " . $error[2] . PHP_EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Use example database
|
||||||
|
//
|
||||||
|
|
||||||
|
// set encryption key before any sql command
|
||||||
|
$sql = "PRAGMA key = '$password'";
|
||||||
|
$pdo = getPDO($database);
|
||||||
|
|
||||||
|
if ($pdo->exec($sql) === false) {
|
||||||
|
$error = $pdo->errorInfo();
|
||||||
|
die($error[0] . ": " . $error[2] . PHP_EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert rows
|
||||||
|
$sql = "INSERT INTO `test` VALUES (1, 'value1');
|
||||||
|
INSERT INTO `test` VALUES (2, 'value2');
|
||||||
|
INSERT INTO `test` VALUES (3, 'value3');";
|
||||||
|
|
||||||
|
if ($pdo->exec($sql) === false) {
|
||||||
|
$error = $pdo->errorInfo();
|
||||||
|
die($error[0] . ": " . $error[2] . PHP_EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// select rows
|
||||||
|
$result = $pdo->query("SELECT * FROM `test`");
|
||||||
|
|
||||||
|
if ($result === false) {
|
||||||
|
$error = $pdo->errorInfo();
|
||||||
|
die($error[0] . ": " . $error[2] . PHP_EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($result as $row) {
|
||||||
|
print_r($row);
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue