从php脚本启用sqlite DB的外键约束

Roo*_*opa 0 php sqlite

我试图从我的PHP脚本启用sqlite数据库的外键约束.

我试过了 :

shell_exec('sqlite ex.db');

shell_exec('PRAGMA foreign_keys = ON');

echo $isEnabled = shell_exec('PRAGMA foreign_keys');
Run Code Online (Sandbox Code Playgroud)

但我没有得到$isEnabled1.事实上,我没有得到任何输出.

谢谢.

Kin*_*nch 5

为什么你不使用内置的SQLite驱动程序?

$con = new SQLite3('ex.db');
$con->exec('PRAGMA foreign_keys = ON;');
var_dump($con->query('PRAGMA foreign_keys;')->fetchArray());
Run Code Online (Sandbox Code Playgroud)

根据您的问题:( shell_exec()顾名思义)执行shell命令.这意味着,您尝试执行三个(!)shell命令,但是您想要执行一个命令,然后您希望在之前启动的交互式sqlite3进程中执行另外两个命令.这种方式不可能.也许你可以玩stdin,但因为PHP带有SQLite3支持,我没有理由让它更复杂,它需要.