Linux / Unix服务器:访问与执行脚本不同的目录中的SQL数据库

时间:2011-09-15 01:03:05

标签: python sql webserver

我有一个执行SQL查询的python脚本&从SQLite3数据库文件中获取信息。 SQLite3数据库文件驻留在与执行脚本不同的目录中。所有这些都发生在我的webhost(Unix服务器cpanel)上,来自cgi-bin目录。

我的问题/问题:是否可以让python脚本访问/连接到另一个目录中的SQLite3数据库?现在,当我在我的webhost上运行脚本时,它无法连接到SQLite3数据库。

我的python文件存在于webhost上的这个目录中:public_HTML / cgi-bin / dataMiner /。 SQLite3数据库文件存在于此目录public_HTML / cgi-bin /.

我在python脚本中的代码是:

import DataMiner

def connect_ex( f_name ):
    """ Post: """

    try:
        # When the script runs the file is never found but it actually does exist
        if not os.path.isfile( f_name ): 
            raise Exception("")

        conn = sqlite3.connect( f_name )

        return conn

    except IOError, msg:
        #print str(msg)
        return None

    except OSError, msg:
        #print str(msg)
        return None

    except sqlite3.OperationalError, msg:
        #print str(msg)
        return None

    except Exception, e:
        return None


conn  = connect_ex("../competitionDB.db")
res   = DataMiner.execute_query( conn, "SELECT * FROM MyTable;" )
print res
conn.close()

1 个答案:

答案 0 :(得分:0)

使用我使用的数据库(firebird),您必须从服务器上的根目录指定数据库的完整路径

所以“/var/folder/wwww/db/dbfile.db”例如,/ var位于粗根文件夹

只是说它来自网站“db / dbfile.db”不会起作用(至少对火鸟来说)

为了安全起见,这也允许您将数据库文件放在甚至不在网站上的文件夹中。