[我在mysql perl中的UPDATE查询未更新。我在做什么错?

问题描述 投票:0回答:1

我想从mysql获取数据,显示它,让用户编辑此数据,然后将其保存到数据库中。除了保存到数据库部分,我目前所有工作。我一直被认为是mysql中的UPDATE查询是如何使它工作的。我将UPDATE查询放在适当的位置,并且没有运气。这里有没有人遇到过这个问题?我在这里和perl僧侣上读过几篇有关此问题的文章,似乎找不到解决我问题的答案。我将在下面放置一些代码。谢谢!

    my $dbh=DBI->connect("dbi:mysql:survey_one", "user", "password", { PrintError =>0, RaiseError => 1, AutoCommit => 1}) or die $DBI::errstr;


    my $edit_sql = q{UPDATE new_survey SET question = ? WHERE title= ?};

    my $sthe = $dbh->prepare($edit_sql);
    $sthe->execute($questionedit, $marathon);
    $sthe->finish();

[我想指出的是,如果我将问题列设置为类似'这行吗?我会成功的。这是我尝试使用用户输入$ questionedit定义的时间$ questionedit = param('editquestion');用户可以在此处编辑问题字段。

谢谢!

mysql perl dbi
1个回答
0
投票

假设代码完全运行,以下是三种可能的结果:

  1. 您收到一个错误。如果任何一个步骤失败,将引发异常(由于[C​​0]),除非被捕获,否则最终将被打印到STDERR。
  2. 没有错误,但是没有更新,因为WHERE子句与任何记录都不匹配。在这种情况下,RaiseError => 1将返回字符串->execute(这是正确的,但数字为零)。
  3. 更新一个或多个行。在这种情况下,0E0将返回更新的行数。

确定哪种情况适用,您将知道如何前进。

© www.soinside.com 2019 - 2024. All rights reserved.