Я довольно новичок в PHP, и я смотрю вокруг и не могу найти конкретного ответа, который я ищу.
Я хочу сделать SQL-запрос, например:
$result = mysqli_query($connection, $command) if (!$result) { die("Query Failed."); } // Create my array here ... I'm thinking of maybe having to // make a class that can hold everything I need, but I dunno while($row = mysqli_fetch_array($result)) { // Put the row into an array or class here... } mysqli_close($connection); // return my array or class
В основном я хочу взять все содержимое результата и создать массив, к которому я могу получить доступ, подобно строке. Например, если у меня есть поле под названием «uid», я хочу получить его через myData ['uid']. Наверное, так как может быть несколько строк, может быть, нечто большее похоже на myData [0] ['uid'], myData [1] ['uid'] и т. Д.
Любая помощь будет оценена по достоинству.
Ты можешь сделать:
$rows = []; while($row = mysqli_fetch_array($result)) { $rows[] = $row; }
Вы можете попытаться использовать mysqli_result::fetch_all()
для массивов:
$result = mysqli_query($connection, $command) if (!$result) { die("Query Failed."); } $array = $result->fetch_all(); $result->free(); mysqli_close($connection);
ПРИМЕЧАНИЕ. Это работает только с MySQLND .
Для класса вы можете попытаться использовать что-то вроде этого:
$result = mysqli_query($connection, $command) if (!$result) { die("Query Failed."); } while($model = $result->fetch_assoc()){ // Assuming ModelClass is declared // And have method push() to append rows. ModelClass::push($model); } $result->free(); mysqli_close($connection);
Или это:
// Base Model - abstract model class. class ModelClass extends BaseModel { // constructor public function __construct(mysqli &$dbms){ // $this->dbms is MySQLi connection instance. $this->dbms = &$dbms; // $this->models is buffer for resultset. $this->models = array(); } // destructor public function __destruct(){ unset($this->dbms, $this->models); } public function read(){ $result = $this->dbms->query($command); if($this->dbms->errno){ throw new Exception($this->dbms->error, $this->dbms->errno); } $this->models = $result->fetch_all(); $result->free(); } }
//object oriented style mysqli //connect to your db $mysqli = new mysqli("host", "user", "password", "dbname"); $result = $mysqli->query("SELECT * FROM `table`"); //use mysqli->affected_rows for ($x = 1; $x <= $mysqli->affected_rows; $x++) { $rows[] = $result->fetch_assoc(); } //this will return a nested array echo "<pre>"; print_r($rows); echo "</pre>";
отредактируйте это и поместите его в класс и просто вызовите его в любое время, когда вы собираетесь делать запрос с вашей базой данных.