我在mysql-perl中的UPDATE查询没有更新.我做错了什么



我想从mysql中获取数据,显示它,让用户编辑这些数据,然后将其保存到数据库中。除了保存到数据库部分之外,我目前所有的工作都在进行。我一直相信mysql中的UPDATE查询就是实现这一点的方法。我设置了一个UPDATE查询,但运气不佳。这里有人以前经历过这个问题吗?我在这里和perlmonks上读了几篇关于这个问题的文章,似乎找不到解决我问题的答案。我将把我的一些代码放在下面。谢谢

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'(;这是用户可以编辑问题字段的地方。

谢谢!

以下是四种可能的结果:

  1. 由于没有执行代码,所以不会发生任何事情。

  2. 由于发生错误(使用了RaiseError => 1(,引发了异常。除非被捕获,否则异常最终将被打印到STDERR。

  3. ->execute返回字符串0E0(这是真的,但数字为零(,因为WHERE子句与任何行都不匹配,所以没有更新任何行
  4. CCD_ 5返回一个正数,表示修改的行数

确定哪种情况适用,您就会知道如何继续前进。

相关内容

最新更新