1 避免乙個預定義變數賦給多處。如果是string型別,會過濾掉所有錯誤的過濾條件。
見以下程式碼的輸出
public function testsql()
輸出
select * from `user` limit 1
select * from `file` where ( filekey=0 or fileid=0 ) limit 1
select * from `file` where ( `fileid` in ('dbc',null) ) limit 1
如果是%s,則會把where條件都過濾掉了,可能造成很驗證的後果。
2 陣列遍歷的引用問題
若陣列遍歷使用了引用,當再次遍歷該陣列的時候,不要用同樣的變數名。否則最後乙個陣列的值會被倒數第二個覆蓋掉。
解決辦法:變數名不要重複,換乙個新的變數。
foreach ($issuedata as $p => &$issue) elseif ($userdata) else
}$responsedata = array();
foreach ($issuedata as $i => $issue)
} else
}
修改後的code
foreach ($issuedata as $p => &$issue) elseif ($userdata) else
}$responsedata = array();
foreach ($issuedata as $i => $item)
} else
}
測試程式碼
$data=array();
$arr=array("abc","efg");
$arr2=array("rtrt","yyy");
foreach ($arr as $k => &$v)
print_r($arr);
foreach ($arr2 as $k => $v)
print_r($data);
print_r($arr);
輸出
array ( [0] => abc0 [1] => efg1 ) array ( [0] => abc0 [1] => abc0 ) array ( [0] => abc0 [1] => abc0 )
的一些用法
action標籤,顧名思義,是用來呼叫action的標籤,在jsp中頁面中,可以具體指定某一命名空間中的某一action。而標籤的主體用於顯示及渲染actionr的處理結果。action標籤有如下幾個屬性 id 可選屬性,作為該action的引用id name 必選屬性,指定呼叫action nam...
PHP TP5 對事務的一些理解
mysql 事務主要用於處理操作量大,複雜度高的資料。乙個事務是乙個連續的一組資料庫操作,就好像它是乙個單一的工作單元進行。換言之,永遠不會是完整的事務,除非該組內的每個單獨的操作是成功的。如果在事務的任何操作失敗,則整個事務將失敗。tp5中手動控制事務 注意點 1 所有事務操作都保持同乙個資料庫連...
一些避免競爭條件的例項
人們總是期望核心開發者確定和解決由核心控制路徑的交錯執行所引起的同步問題。但是,避免競爭條件是一項艱鉅的任務,因為這需要對核心的各個成分如何相互作用有乙個清楚的理解。為了直觀地認識核心內部到底是什麼樣子,需要提及前面博文中所定義同步技術的幾種典型應用場景。1 引用計數器 引用計數器廣泛地用在核心中以...