나는이 기능을했습니다 :선택하여 call_user_func_array 문제
private function db_bind_array($stmt, &$row) {
$md = $stmt->result_metadata();
$param = array();
while($field = $md->fetch_field()) { $param[] = &$row[$field->name];}
return call_user_func_array(array($stmt, 'bind_result'), $param);
}
private function db_query($sql, $bind_param, $param) {
if($stmt = $this->conn->prepare($sql)) {
if(!$bindRet = call_user_func_array(array($stmt,'bind_param'),
array_merge(array($bind_param), $param))) $this->Terminate();
if(!$stmt->execute()) $this->Terminate();
$res = array();
if($this->db_bind_array($stmt, $res)) return array($stmt, $res);
}
}
protected function Select($recs, $table, $where, $bind_param, $param, $order_by = '', $sort = '', $limit = 1) {
if($order_by != '') $order_by = 'ORDER BY '.$order_by;
$sql = "SELECT $recs FROM $table WHERE $where $order_by $sort LIMIT $limit";
return $this->ExeSelect($sql, $bind_param, $param);
}
private function ExeSelect($sql, $bind_param, $param) {
if($res = $this->db_query($sql, $bind_param, array(&$param))) {
$stmt = $res[0]; $row = $res[1];
while($stmt->fetch()) {$this->row = $row; return $row;}
$stmt->close();
}
}
을 그리고 내가 그것을 사용 $ 행 = $ this-> 선택 ('ID, 이름, 제목,'기사 ', ID>, 'i', 10, 'DESC', '', 10)
문제는 10 대신 하나의 레코드 만 반환한다는 것입니다. 무엇이 문제입니까? 감사합니다.
오, 좋은 일을 위해서, 이처럼 기능을 사용하지 마십시오. 당신이 그것을 부르는 방식을보십시오! 당신이 선택한 것을 말하기 란 불가능합니다! 그것은 완전히 uncomphencible! –
그냥 ExeSelect()를 사용하십시오 - –
어를 사용하는 유일한 분별있는 기능입니다. 그게 내가 찾은 것입니다 ..... 더 나은 점이 있습니까? –