mirror of
https://github.com/php/php-src.git
synced 2026-10-28 17:56:50 +08:00
* ext/bz2: applied fixers to improve test robustness * ext/calendar: applied fixers to improve test robustness * ext/exif: applied fixers to improve test robustness * ext/fileinfo: applied fixers to improve test robustness * ext/filter: applied fixers to improve test robustness * ext/ftp: applied fixers to improve test robustness * ext/hash: applied fixers to improve test robustness * ext/iconv: applied fixers to improve test robustness * ext/ldap: applied fixers to improve test robustness * ext/pcre: applied fixers to improve test robustness * ext/posix: applied fixers to improve test robustness * ext/readline: applied fixers to improve test robustness * ext/shmop: applied fixers to improve test robustness * ext/snmp: applied fixers to improve test robustness * ext/sodium: applied fixers to improve test robustness * ext/sqlite3: applied fixers to improve test robustness * ext/sysvmsg: applied fixers to improve test robustness * ext/sysvsem: applied fixers to improve test robustness * ext/sysvshm: applied fixers to improve test robustness * ext/tidy: applied fixers to improve test robustness * ext/tokenizer: applied fixers to improve test robustness * ext/zend_test: applied fixers to improve test robustness * ext/zlib: applied fixers to improve test robustness
42 lines
890 B
PHP
42 lines
890 B
PHP
--TEST--
|
|
SQLite3 user authorizer trampoline callback
|
|
--EXTENSIONS--
|
|
sqlite3
|
|
--FILE--
|
|
<?php
|
|
|
|
class TrampolineTest {
|
|
public function __call(string $name, array $arguments) {
|
|
echo 'Trampoline for ', $name, PHP_EOL;
|
|
if ($arguments[0] == SQLite3::SELECT) {
|
|
return SQLite3::OK;
|
|
}
|
|
|
|
return SQLite3::DENY;
|
|
}
|
|
}
|
|
$o = new TrampolineTest();
|
|
$callback = [$o, 'authorizer'];
|
|
|
|
$db = new SQLite3(':memory:');
|
|
$db->enableExceptions(true);
|
|
|
|
$db->setAuthorizer($callback);
|
|
|
|
// This query should be accepted
|
|
var_dump($db->querySingle('SELECT 1;'));
|
|
|
|
try {
|
|
// This one should fail
|
|
var_dump($db->querySingle('CREATE TABLE test (a, b);'));
|
|
} catch (\Exception $e) {
|
|
echo $e::class, ': ', $e->getMessage(), "\n";
|
|
}
|
|
|
|
?>
|
|
--EXPECT--
|
|
Trampoline for authorizer
|
|
int(1)
|
|
Trampoline for authorizer
|
|
SQLite3Exception: Unable to prepare statement: not authorized
|