我在共享托管服务器上。 我有一个perl模块文件,工作正常。我可以使用它的sub而没有perl脚本文件的问题。如果我把它添加到pm文件,
use DBI;
my $username = "username";
my $password = "password";
my $dsn = "DBD:mysql:database"; # i changed DBD to DBI as well but no good
仍然一切正常。 但是,一旦我将以下行添加到perl模块文件中,perl脚本文件开始抱怨" 编译失败在require"
my $dbh = DBI->connect($dsn, $username, $password ) or die $DBI::errstr;
我尝试使用谷歌搜索但没有结果。有什么想法吗?
答案 0 :(得分:0)
我想创建一个dbi句柄,可以被该模块的子节点使用但我在使用之前遇到错误(正如我在问题中所提到的)。 可能是模块的安全功能,显然我只能在子表单中使用dbi,
使用DBI;
sub databaseHandle {
我的$ username ="用户名";
我的$ password ="密码";
我的$ dsn =" DBI:mysql:database&#34 ;;
我的$ dbh = DBI->连接($ dsn,$ username,$ password)或死$ DBI :: errstr;
返回$ dbh}
我的$ dbh = databaseHandle();
我不知道具体原因,但这就是我使用它的方式。 感谢您的帮助和想法。
答案 1 :(得分:-2)
数据源必须是" DBI:mysql:database=my_database
",您可以在其中传递数据库的种类和名称。
发生此错误是因为必须安装数据库驱动程序模块DBD::mysql
。询问您的主机是否已安装该模块或是否可以自行安装。