Forum Webscript.Ru

Программирование => Perl => Тема начата: mario от 19 Июня 2001, 08:51:53

Название: Запись из Perl в базу данных MySQL
Отправлено: mario от 19 Июня 2001, 08:51:53
Возникла проблема по записи в базу данных. Подсткажите функцию, которая делает удобоваримыми всякие кавычки и прочее. Вот в php были addslashes(), а в перле?
p.s. DBI->quotes() вроде тоже не помогает :(
Название: Запись из Perl в базу данных MySQL
Отправлено: Light Elf от 19 Июня 2001, 09:16:07
perldoc DBI
perldoc Mysql
Название: Запись из Perl в базу данных MySQL
Отправлено: AliMamed от 19 Июня 2001, 10:16:49
$value =~ s/\\"/\\"\\;/g;

или
    $value =~ s/\\"/\\\\\\"/g;
Название: Запись из Perl в базу данных MySQL
Отправлено: Chs от 19 Июня 2001, 11:23:51
Цитировать
AliMamed (19-06-2001 10:16):
$value =~ s/\\"/\\"\\;/g;

или
    $value =~ s/\\"/\\\\\\"/g;
$str = $dbh->quote($str);
Это правильнее.:)
А если напрямую не подставлять строки в запрос, а делать bind_param или execute c параметрами, то вообще никаких проблем не будет.:)
Название: Запись из Perl в базу данных MySQL
Отправлено: mario от 19 Июня 2001, 18:50:15
Что-то меня все больше и больше тупеет :(. В базу надо вставить простенький HTML код:









Вот напишите мне, что надо с ним сделать, чтобы в базу его в blob загнать.
Название: Запись из Perl в базу данных MySQL
Отправлено: Chs от 19 Июня 2001, 22:04:08
Например так:
#!/usr/bin/perl
use DBI;

my $db_host = "localhost";
my $db_name = "test";
my $db_user = "root";
my $db_pwd = "";

$str = qq~







~;

my $dbh = DBI-> connect("DBI:mysql:database=$db_name;host=$db_host",$db_user,$db_pwd) || die(DBI::errstr);
my $cmd = "insert into table1 (field1) values(?)";
my $sth = $dbh-> prepare ($cmd)|| die(DBI::errstr);
$sth -> execute($str) || die(DBI::errstr);

С тебя - пиво.:)