Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
То най-трудното мина! Останалото са fetchRow fetchAll fetchObj, които са почти същите в mysqli, с google веднага излиза кое как се ползва.teroristd каза:Май и със другите функции ще трябват разни врътки като гледам![]()
public function fetchAllAssoc() {
return $this->STMT->fetchAll(\PDO::FETCH_ASSOC);
}
public function fetchRowAssoc() {
return $this->STMT->fetch(\PDO::FETCH_ASSOC);
}
public function fetchAllNum() {
return $this->STMT->fetchAll(\PDO::FETCH_NUM);
}
public function fetchRowNum() {
return $this->STMT->fetch(\PDO::FETCH_NUM);
}
public function fetchAllObj() {
return $this->STMT->fetchAll(\PDO::FETCH_OBJ);
}
public function fetchRowObj() {
return $this->STMT->fetch(\PDO::FETCH_OBJ);
}
public function fetchAllColumn($column) {
return $this->STMT->fetchAll(\PDO::FETCH_COLUMN, $column);
}
public function fetchRowColumn($column) {
return $this->STMT->fetch(\PDO::FETCH_BOUND, $column);
}
public function fetchAllClass($class) {
return $this->STMT->fetchAll(\PDO::FETCH_CLASS, $class);
}
public function fetchRowClass($class) {
return $this->STMT->fetch(\PDO::FETCH_BOUND, $class);
}
public function getLastInsertId() {
return $this->db->lastInsertId();
}
public function getAffectedRows() {
return $this->STMT->rowCount();
}
dakata__92 каза:От прекалено многото инфо направо взех да пиша глупости.![]()
teroristd каза:dakata__92 каза:От прекалено многото инфо направо взех да пиша глупости.![]()
абе знам си аз че и с тях ще е разправия. Пусни един от методите как си го пробвал за да не си повтаряме глупостите
![]()
![]()
![]()
public function fetchAllAssoc(){
return $this->STMT->fetch_assoc();
}
Call to undefined method mysqli_stmt::fetch_assoc()
Ще го пробвам но защо си мисля, че е заради припеър стейтмъна. Явно ще трябва освен да биндвам параметрите а и резултата (bind_result). Сега разбирам защо PDO е по-добър варянт като цяло при връщане на резултат. По-бърз е.teroristd каза:Пробвай нещо подобно. Мисля си че е вързана работата със заявката.
Код:public function numRows() { $result = query($this->sql); return $this->STMT->mysqli_num_rows($result); }
private function bindResult(){
$parameters = array();
$results = array();
$meta = $this->STMT->result_metadata();
while( $field = $meta->fetch_field() ) {
$parameters[] = &$row[$field->name];
}
call_user_func_array(array($this->STMT, 'bind_result'), $parameters);
while($this->STMT->fetch()) {
$x = array();
foreach($row as $key => $val ) {
$x[$key] = $val;
}
$results[] = $x;
}
print_r($results);
}
public function fetchAllAssoc(){
$result = $this->STMT->get_result();
return $result->fetch_assoc();
}
Ми що ползваш fetch_assoc?dakata__92 каза:Eто така нещо сработи но уви вади само един резултат:
PHP:public function fetchAllAssoc(){ $result = $this->STMT->get_result(); return $result->fetch_assoc(); }
public function fetchAllObj() {
return $this->STMT->fetchAll(\PDO::FETCH_OBJ);
}
public function fetchAllObj() {
$result = $this->getResult();
return $result->fetch_object();
}
public function fetchRowColumn($column) {
return $this->STMT->fetch(\PDO::FETCH_BOUND, $column);
}
public function fetchAllClass($class) {
return $this->STMT->fetchAll(\PDO::FETCH_CLASS, $class);
}
public function fetchRowClass($class) {
return $this->STMT->fetch(\PDO::FETCH_BOUND, $class);
}
public function getLastInsertId() {
return $this->db->lastInsertId();
}
public function getAffectedRows() {
return $this->STMT->rowCount();
}
anonimen каза:Еми кво да ти кажа
getLastInsertId и getAffectedRows излизат веднага в гугъл, някъде по-горе май също ги постнах.
А сега:
* относно fetchAllObj - къде ще ти потрябва всички редове да ги пъхнеш в обект - просто не мога да си го представя
* относно fetchRowColumn - ако ти потрябва ще го вземеш от масива, върнат от fetchRowNum или fetchRowAssoc
* относно fetchRowClass - това не е ли същото като fetchRowObj
public function getAffectedRows() {
return $this->db->affected_rows;
}
public function fetchAllClass($class) {
return $this->STMT->fetchAll(\PDO::FETCH_CLASS, $class);
}
public function fetchRowClass($class) {
return $this->STMT->fetch(\PDO::FETCH_BOUND, $class);
}
PDO ми вади 5 а MySQLi 0 при getAffectedRows.teroristd каза:getAffectedRows
отговаря на mysqli_num_rows
lastInsertId
отговаря на insert_id
за тези fetchAllClass може би
mysqli_fetch_object()
$sql = $db->prepare('SELECT * FROM `user`')->execute()->getAffectedRows();
Използвал съм стейтмъна вместо резултата затова идва грешката.teroristd каза:пробвай с mysqli_num_rows() и няма да има разлика
public function getAffectedRows(){
$result = $this->getResult();
return $result->num_rows;
}