15. september 2013 - 01:19Der er
6 kommentarer og 1 løsning
Søger MySQLi alternativ til PDO fetchAll i MVC
Jeg ved ikke om det er skrevet under den rigtige kategori, men here i go..
Jeg er ved at prøve at lave en brugerlist.
Jeg har set det lavet med PDO fetchAll. Men da jeg ellers har arbejdet med MySQLi, og er fint tilfreds med det, vil jeg gerne finde et MySQLi alternativ til følgende:
I Modellen har PDO versione følgende: function userList()[ $stmt->db->prepare('SELECT id,username FROM users'); $stmt->execute(); return $stmt->fetchAll }
Og i viewer er der: print_r($this->userList);
Det virker fint, med PDO... Men jeg har prøvet med flere MySQLi funktioner. Og der får jeg konstant følgende fejl:
Call to undefined method mysqli_stmt::
efterfulgt af de mysqli metoder jeg har prøvet.. Og jeg har søgt google tynd efter mulige alternativer, men intet er lykkes.
Så spørgsmålet er: Hvordan kan jeg sende mine data ud på viewer-siden i array, ligesom det gøres i PDO?
Hovsa taste fik ikke skrevet rigtigt af :) Det er sådanset bare denne del der skal omskrives:
$stmt = $this->db->prepare('SELECT id,username FROM users'); $stmt->execute(); return $stmt->fetchAll();
Men hvis du vil se hele forløbet har jeg det her (håber det bliver til at læse:
------------------------
Jeg har en database.php i en config mappe: define('DB_HOST', 'localhost'); define('DB_NAME', 'leg'); define('DB_USER', 'root'); define('DB_PASS', '');
------------------------
Så har jeg en inc mappe hvor jeg har funktionen: class Database extends mysqli { public function __construct() { parent::__construct(DB_HOST,DB_USER,DB_PASS,DB_NAME); } }
------------------------
Så har jeg en "main" Model.php fil i inc: class Model { function __construct() { $this->db = new Database(); } }
------------------------
Så her jeg min user_model.php hvor listen skal kaldes:
class User_Model extends Model { public function __construct() { parent::__construct(); }
public function userList(){ $stmt = $this->db->prepare('SELECT id,username FROM users'); $stmt->execute(); return $stmt->fetchAll(); } }
------------------------
Så har en en controller for user:
public function index() { $this->view->userList = $this->model->userList(); }
------------------------
Så har jeg siden hvor i listen gerne skulle kommer:
echo $this->userList;
------------------------
Det var de filer der lige har med userlist at gøre
Ja, havde ikke tænkt på at $stmt->get_result(); skulle i en variabel. Men det er da positivt, for det var det jeg prøvede, så var inde på noget af det rigtige :)
$stmt = $this->db->prepare('SELECT id,username FROM users'); $stmt->execute(); return $stmt->get_result()->fetch_all();
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.