Je suis assez nouveau sur PHP et j'ai regardé autour de moi et je n'arrive pas à trouver la réponse précise que je cherche.
Je veux faire une requête SQL, comme ceci:
$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
En gros, je veux prendre tout le contenu du résultat et créer un tableau auquel je peux accéder de la même manière que la ligne. Par exemple, si j'ai un champ appelé "uid", je veux pouvoir l'obtenir via myData ["uid"]. Comme il pourrait y avoir plusieurs lignes, peut-être que quelque chose de plus semblable à myData [0] ['uid'], myData [1] ['uid'], etc.
Toute aide serait appréciée.
Tu peux faire:
$rows = [];
while($row = mysqli_fetch_array($result))
{
$rows[] = $row;
}
Vous pouvez essayer d’utiliser mysqli_result::fetch_all()
pour les tableaux:
$result = mysqli_query($connection, $command)
if (!$result) { die("Query Failed."); }
$array = $result->fetch_all();
$result->free();
mysqli_close($connection);
NOTE: Ceci fonctionne avec MySQLND uniquement.
Pour la classe, vous pouvez essayer d'utiliser quelque chose comme ceci:
$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);
Ou ca:
// 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>";
éditez-le et mettez-le sur une classe et appelez-le chaque fois que vous allez faire une requête avec votre base de données.