Perl中DBI介面非SELECT語句的返回值判斷

2021-09-21 20:13:05 字數 462 閱讀 1489

在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.

perl 中的 foreach 語句

最近在用 perl 來編寫 生成器 的過程中多次遇到對 foreach 語句使用不當的問題。對於這個問題,我在第一次遇到時覺得自己在寫 時沒有想太明白,再次遇到同乙個問題,我覺得很有必要在這裡記錄一下,既為了加深對此問題的印象,也能夠給其他 perl 的初學者提供參考。我這裡提及的 生成器 其實非常...

coalesce 返回多個值中的非空值

coalesce expression 1,expression 2,expression n 依次參考各引數表示式,遇到非null值即停止並返回該值。如果所有的表示式都是空值,最終將返回乙個空值。使用coalesce在於大部分包含空值的表示式最終將返回空值。1基本資訊 語法 引數 返回型別 作用 ...

獲取後端介面返回的資料中的部分字段

const istype type val type object.prototype.tostring.call val slice 8,1 const isarray istype array const isobject istype object 後端返回的資料列表中欄位可能並不全部需要 獲...