代码返回:
Notice: Undefined offset: 0 line 60
Notice: Undefined offset: 1 line 61
Notice: Undefined offset: 2 line 62
我不知道哪里出了错。我不知道,所以我需要一些帮助。
部分代码如下:
private function action($action, $table, $where = array()) {
if(count($where) === 3) {
$operators = array('=','>','<','>=' ,'<=');
$field = $where[0]; //-----> LINE 60
$operator = $where[1]; //-----> LINE 61
$value = $where[2]; //-----> LINE 62
if(in_array($operator, $operators)) {
$sql = "{$action} FROM {$table} WHERE {$field} {$operator} ?";
if(!$this->query($sql, array($value))->error()) {
return $this;
}
}
}
return false;
}
答案 0 :(得分:0)
您的数组$where
似乎不包含数字键。要获取数组的所有可用键,您可以使用array_keys
使用以下代码:
var_dump(array_keys($where));
您的查询看起来没有可用的数字键。相反,数组的键是字段名称(例如id
-但不是数字)。
您还可以像下面这样改善/缩短功能:
private function action($action, $table, $where = []) {
if(count($where) === 3) {
//you need to show the structure of $where to solve this.
$field = $where[0];
$operator = $where[1];
$value = $where[2];
if(in_array($operator, ['=','>','<','>=' ,'<='])) {
$sql = "{$action} FROM {$table} WHERE {$field} {$operator} ?";
if(!$this->query($sql, [$value])->error()) {
return $this;
}
}
}
return false;
}