将Perl中的字符串拆分为数据库

1 mysql sql perl

我用的代码是:

$data_read=$port_obj->read($buffer);
print "$data_read\n";
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

T=3420499518  A=914 B=97 C=49 D=436 E=428 F=863 G=34 H=771 I=214 J=493 K=165
Run Code Online (Sandbox Code Playgroud)

我想把它放在这个:

$T,$A,$B,$C,$D,$E,$F,$G,$H,$I,$J,$K
Run Code Online (Sandbox Code Playgroud)

所以我可以将它写入MySQL数据库.我该怎么做 ?

数据库处理程序:

$query = "INSERT INTO myhouse (T,A,B,C,D,E,F,G,H,I,J,K)
          VALUES ($T,$A,$B,$C,$D,$E,$F,$G,$H,$I,$J,$K)";

$query_handle = $connect->prepare($query);

$query_handle->execute();
Run Code Online (Sandbox Code Playgroud)

Bor*_*din 5

您应该将数据值存储在哈希中,在准备好的SQL语句中使用占位符,并将哈希切片传递给execute方法.

代码看起来像这样

my $data_read = 'T=3420499518  A=914 B=97 C=49 D=436 E=428 F=863 G=34 H=771 I=214 J=493 K=165';

my %data = $data_read =~/([A-Z0-9]+)/g;

my $query_handle = $connect->prepare(<<SQL);
INSERT INTO myhouse (T,A,B,C,D,E,F,G,H,I,J,K)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
SQL

$query_handle->execute(@data{ qw/ T A B C D E F G H I J K / });
Run Code Online (Sandbox Code Playgroud)