PHP PDO关闭日志模式 [英] PHP PDO turn off journal mode
问题描述
场景:
使用PHP关闭日志模式:: PDO不起作用
尝试
{
$ dir = ' sqlite:C:/ SQLite /'。$ FileName。' 。sqlite';
$ database = new PDO($ dir)或 die( 无法打开数据库);
}
catch(例外$ e)
{
echo $ e-> getMessage();
echo 无法创建数据库< /跨度>;
}
$ mainQuery = PRAGMA journal_mode = OFF;
$ resultm = $ database-> query($ mainQuery);
$ arr = $ resultm-> errorInfo();
print_r($ arr);
$ mainQuery1 = PRAGMA synchronous = OFF;
$ resultm = $ database-> query($ mainQuery1);
$ arr1 = $ resultm-> errorInfo();
print_r($ arr1);
$ mainQuery2 = PRAGMA count_changes = OFF;
$ resultm = $ database-> query($ mainQuery2);
$ arr2 = $ resultm-> errorInfo();
print_r($ arr2);
$ mainQuery3 = PRAGMA temp_store = OFF;
$ resultm = $ database-> query($ mainQuery3);
$ arr3 = $ resultm-> errorInfo();
print_r($ arr3);
这是输出:
数组
(
[ 0 ] => 00000
[ 1 ] =>
[ 2 ] =>
)
数组
(
[ 0 ] => 00000
[ 1 ] =>
[ 2 ] => ;
)
数组
(
[ 0 ] => 00000
[ 1 ] =>
[ 2 ] =>
)
数组
(
[ 0 ] => 00000
[ 1 ] =>
[ 2 ] =>
)
和SQLSTATE erro r代码00000表示成功执行。
现在,如果我使用SQLITE管理器在Firefox中打开创建的sqlite数据库。在数据库设置选项卡中,我看到日志模式:删除和同步:关闭。我该如何完全关闭日志模式?
如果我尝试更改SQLITE管理器中的日志模式数据库设置,它将不会更改,因为存在一个表,我稍后在代码中创建。根据文档,这是有道理的。但是为什么日志模式不是首先关闭,而是保持默认删除。
dir = ' sqlite:C:/ SQLite /'。
FileName。' 。sqlite';
数据库 = 新 PDO(
Scenario:
Turning off journal mode using PHP::PDO does not work
try
{
$dir = 'sqlite:C:/SQLite/'.$FileName.'.sqlite';
$database = new PDO($dir) or die("cannot open the database");
}
catch(Exception $e)
{
echo $e->getMessage();
echo "Unable to create database";
}
$mainQuery = "PRAGMA journal_mode=OFF";
$resultm = $database->query($mainQuery);
$arr = $resultm->errorInfo();
print_r($arr);
$mainQuery1 = "PRAGMA synchronous=OFF";
$resultm = $database->query($mainQuery1);
$arr1 = $resultm->errorInfo();
print_r($arr1);
$mainQuery2 = "PRAGMA count_changes=OFF";
$resultm = $database->query($mainQuery2);
$arr2 = $resultm->errorInfo();
print_r($arr2);
$mainQuery3 = "PRAGMA temp_store=OFF";
$resultm = $database->query($mainQuery3);
$arr3 = $resultm->errorInfo();
print_r($arr3);
Here is the output:
Array
(
[0] => 00000
[1] =>
[2] =>
)
Array
(
[0] => 00000
[1] =>
[2] =>
)
Array
(
[0] => 00000
[1] =>
[2] =>
)
Array
(
[0] => 00000
[1] =>
[2] =>
)
And SQLSTATE error code 00000 means Successful Execution.
Now, if i open the created sqlite database using "SQLITE Manager" add on in firefox. In the "DB Settings" tab i see Journal Mode : delete and Synchronous : off. How the hell do i turn off the journal mode completely?
If i try to change the Journal Mode DB setting in the "SQLITE Manager", it will not change because a table exists which i am creating later in the code. This makes sense according to the documentation. But why isn't the journal mode turned off in the first place but stays in default delete.
dir = 'sqlite:C:/SQLite/'.
FileName.'.sqlite';
database = new PDO(
这篇关于PHP PDO关闭日志模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!