Perl / SQLite - Как выбрать / обновить строку с помощью метода prepare? - PullRequest
0 голосов
/ 08 марта 2010

У меня есть следующий код

my $db = DBI->connect(
     "dbi:SQLite:data.db", "", "",
     { RaiseError => 1, AutoCommit => 1, PrintError => 0 }
);
my $row = $db->selectall_arrayref(
     "SELECT * FROM something WHERE name=\'$hash->{name}\'");
print Dumper $row;

Как мне сделать то же самое с my $sql = $db->prepare("......"); $sql->execute($hash->{name});, чтобы он правильно экранировался и у меня были выбранные данные в $row?

1 Ответ

4 голосов
/ 08 марта 2010

Вы, похоже, ищете информацию о значениях связывания :

my $row = $db->selectall_arrayref(
    "SELECT * FROM something WHERE name=?",
    {},
    $hash->{name}
);

Это готовит и выполняет за один раз.

Вы также можете подготовить и выполнить отдельно:

my $sth = $db->prepare("SELECT * FROM something WHERE name=?");

позже:

$sth->execute($hash->{name});
my $rows_ref = $sth->fetchall_arrayref;

Вам следует избегать использования SELECT * и прочитать раздел Методы обработки операторов в perldoc DBI .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...