DBI do方法返回-1的条件

时间:2013-07-17 11:01:58

标签: perl dbi

DBI docs表示:

当行数未知,不适用或不可用时,do()方法返回-1。

这是否仅在特定行或表不存在的情况下返回-1,或者存在更多可能的原因。

2 个答案:

答案 0 :(得分:2)

对于不适用rowcounts的方法,它会返回-1,例如CREATEALTER TABLE

答案 1 :(得分:2)

它将返回-1,其中a)受影响的行不适用(例如,一个create,alter语句,因为@simbabque表示不会改变任何行)b)驱动程序不知道受影响的行(所以它是插入/更新/删除但由于某种原因,驱动程序不知道 - pod中不可用。并非所有DBD都可以告诉您所有删除/插入/更新语句中受影响的行,它取决于DBD,有时是它使用的DB API,有时还取决于DBMS本身。

不要将select语句放在do方法调用中。将do的返回视为“受影响的行数” - 通常没有select语句的影响,无论如何它们都是毫无意义的。