我剛剛學會便便和我有使用Perl的發揮,取得了這一點,但我沒有得到預期的輸出,問題與MySQL?或錯誤的代碼?其他的事情,同樣的查詢上的控制檯和工作臺運行,該模塊添加使用chmod + X module.pm的Perl + POO和MySQL錯誤
#!/usr/bin/perl
use warnings;
use strict;
use DBI;
use DBD::mysql;
package MysqlTest;
sub new{
my $class = shift;
my $query={};
bless($query, $class);
}
sub conexion{
my $self=shift;
my($database, $host, $user, $pwd)[email protected]_;
my $connect = DBI->connect("DBI:mysql:$database:$host", $user, $pwd) or die $DBI::errstr;;
$self->{"host"}="$host";
$self->{"database"}="$database";
$self->{"user"}="$user";
$self->{"pass"}="$pwd";
my $mysqlopen = 1;
return;
}
sub consulta{
my $self=shift;
if (!$mysqlopen) { &conexion; }
my $id = "SELECT * FROM save_bookmarks WHERE id='123'";
$result = $connect->prepare($id);
$result->execute();
my @resultado = $result->fetchrow_array();
print "@resultado\n";
return;
}
sub datos{
my $self=shift;
print "::DATOS DE ACCESO::\n";
while (($key, $value)=each(%$self)){
print "$key => $value\n";
}
}
1;
該文件調用的方法和創建的對象。添加到chmod + x file.pl,但我不知道,什麼是不工作?
#!/usr/bin/perl
use MysqlTest;
use warnings;
use strict;
my $mysqltest = MysqlTest->new();
$mysqltest->conexion("bookmarks", "localhost", "root", "pass");
$mysqltest->consulta();
在控制檯
DBI connect(':','',...) failed: Access denied for user 'delkav'@'localhost' (using password: NO) at MysqlTest.pm line 17.
Access denied for user 'delkav'@'localhost' (using password: NO) at MysqlTest.pm line 17.
任何想法輸出?
在用戶在「delkav」日誌消息,但在它的代碼是「根」 - 這是爲什麼? –
並在mysql中更改passwd ...但現在代碼中出現新錯誤! – opmeitle
精確公認的答案重複:http://stackoverflow.com/questions/12656212/perl-module-inherente-dbi-cant-call-method-prepare-error – memowe