在 Windows 7 中的 Program Files 中安装应用程序时无法打开数据库文件
Unable to open database file when the App is installed in Program Files in Windows 7
我有一个 PHP 桌面应用程序。本应用在Windows XP下安装测试成功,但是在Windows 7下安装在c:\Program Files\myApp文件夹下出现问题,数据库文件打不开,结果在错误消息中:
SQLite3::query: Unable to open database file in C:\Program
Files\myApp\www\checkLogin.php
注意:- 我的数据库在同一个
位置作为 PHP 脚本,即 www\myDatabase.db .
我用来连接数据库的代码是:-
class MyDB extends SQLite3
{
function __construct()
{
$this->open('myDatabase.db');
}
}
$db = new MyDB();
if(!$db)
{
echo $db->lastErrorMsg();
}
如果我在其他位置重新安装应用程序,例如 C:\myApp,则没有问题,应用程序会成功运行。
(个人认为更多是操作系统的安全问题。)
那么,是什么原因导致Program Files文件夹中的数据库文件无法打开呢?如何克服这个问题?
通常建议直接安装到您的根驱动器示例 C:\myApp
这是因为 windows User Account Control
设置阻止了某些特定功能以保护您的系统。
更改 UAC 设置可能允许您的程序 运行 从任何其他目录,但会使您的计算机面临来自恶意程序的其他风险。
我有一个 PHP 桌面应用程序。本应用在Windows XP下安装测试成功,但是在Windows 7下安装在c:\Program Files\myApp文件夹下出现问题,数据库文件打不开,结果在错误消息中:
SQLite3::query: Unable to open database file in C:\Program Files\myApp\www\checkLogin.php
注意:- 我的数据库在同一个 位置作为 PHP 脚本,即 www\myDatabase.db .
我用来连接数据库的代码是:-
class MyDB extends SQLite3
{
function __construct()
{
$this->open('myDatabase.db');
}
}
$db = new MyDB();
if(!$db)
{
echo $db->lastErrorMsg();
}
如果我在其他位置重新安装应用程序,例如 C:\myApp,则没有问题,应用程序会成功运行。
(个人认为更多是操作系统的安全问题。)
那么,是什么原因导致Program Files文件夹中的数据库文件无法打开呢?如何克服这个问题?
通常建议直接安装到您的根驱动器示例 C:\myApp
这是因为 windows User Account Control
设置阻止了某些特定功能以保护您的系统。
更改 UAC 设置可能允许您的程序 运行 从任何其他目录,但会使您的计算机面临来自恶意程序的其他风险。