Perl中DBI接口非SELECT语句的返回值判断
原创
©著作权归作者所有:来自51CTO博客作者dannyy1026的原创作品,请联系作者获取转载授权,否则将追究法律责任
在DBI接口中可以灵活地用DDL和DML语句来操作各类数据库,不过我在判断非SELECT的DML语句返回时发现一个很容易被误用的例子。如
$dbh->do(“update tempa set col1=100 where col2=’god’”);
用过的人都知道,该语句返回的是被改动的行数。问题就是当没有一行更新时,其返回是0E0,My God!科学计数法的0,小心了,用if($ret)则认为没更新也正确了,这很可能不是你业务逻辑上所想要的结果。最好的方法用if($ret>0),如果肯定至多一行时,可以用if($ret==1)来判断。当然为了周密起见,应该考虑返回undef的情况。返回值总结如下:
update,insert,delete: 0row affected return 0E0(warning: not 0)
error in statement return undef.
or the row number.
下一篇:Linux小点滴
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
返回值的判断
返回值的判断必须成为一个下意识的行为。1. 内存分配
内存分配 #include