perl bash script don't insert sql query

有些话、适合烂在心里 提交于 2021-02-05 09:30:34

问题


i want to insert a query but not work :

my $query1 = $db1->prepare("SELECT host, name, severity  FROM XX");  
my $query2 = $db2->prepare('UPDATE worldmap_table' . ' SET severity = ?, name = ? WHERE HOST = ?');

$query1->execute;

while (my @row = $query1->fetchrow_array) {
    $query2->execute($row[2]);
    print "$row[2]\n";
}

preparation query 3

my $query3 = $db1->prepare("SELECT host, name, severity
  FROM XX);

preparation query 4

my $query4 = $db2->prepare('UPDATE worldmap_table' . ' SET severity = 6, name = ? WHERE HOST = ?');

$query3->execute;

this part not work

while (my @row2 = $query3->fetchrow_array) {
    $query4->execute($row2[2], $row2[1], $row2[0]);
    print "$row2[2], $row2[1], $row2[0] \n";
}

i have this error:

DBD::mysql::st execute failed: called with 3 bind variables when 2 are needed at worldmap2.pl line 103.
DBD::mysql::st execute failed: called with 3 bind variables when 2 are needed at worldmap2.pl line 103.

回答1:


There are two placeholders in query 4:

my $query4 = $db2->prepare(
    'UPDATE worldmap_table' . ' SET severity = 6, name = ? WHERE HOST = ?'
    #                                                    ~              ~
);

But you're calling it with only one argument:

$query4->execute($row2[2]);
#                ~~~~~~~~

The error message mentions different numbers, so I guess you simplified the code.



来源:https://stackoverflow.com/questions/60719668/perl-bash-script-dont-insert-sql-query

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!