I created a function to get the a value of last field in a table like this
private function _getLastPosition ($menuId) {
$select = $this -> getDbTable() -> select();
$select -> where("menu_id = ?", $menuId)
-> order('position DESC');
$row = $this -> getDbTable() -> fetchRow($select);
if($row) {
return $row -> position;
} else {
return 0;
}
}
When I run it, I get
Message: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound
Please help me fix this
It typically means that $menuId was empty/NULL. Ensure that $menuId variable has a proper value before using it in $select.:
You could add the following line at the beginning of your function, before you use $menuId in your $select->where() call:
if(empty($menuId))
return 0;
This will return 0 in case no $menuId was provided. If you want to throw an error (Exception) in such case, you could do the following:
if(empty($menuId))
throw new Exception("No Menu ID Provided");
Your complete function would look like this:
private function _getLastPosition ($menuId) {
if(empty($menuId))
throw new Exception("No Menu ID Provided");
$select = $this -> getDbTable() -> select();
$select -> where("menu_id = ?", $menuId)
-> order('position DESC');
$row = $this -> getDbTable() -> fetchRow($select);
if($row) {
return $row -> position;
} else {
return 0;
}
}