Je tente de créer une API pour renvoyer des données à partir de mySQL. C'est la première fois que j'utilise PDO.Le mappage des colonnes PDO ne fonctionne pas lorsque j'essaie de faire correspondre à l'objet
Si je fais ce qui suit, seul l'ID est mappé et rien d'autre. C'est la première fois que j'utilise ça, donc je ne sais pas où regarder. De plus, je n'ai jamais été capable de faire tourner ceci localement, donc ça fonctionne sur le site Live donc je ne peux pas penser à un moyen de le déboguer.
Les résultats de la requête ressemblent à ce
{ ID: "18", Name: null, Country: null }
class cemetery{
// database connection and table name
private $conn;
// object properties
public $id;
public $fldcemetery;
public $fldcountry;
public function __construct($db){
$this->conn = $db;
}
public function readOne(){
// query to read single record
$query = "select tblcemetery.id, tblcemetery.tblcountry_ID, tblcemetery.fldcemetery, tblcountry.fldcountry from tblcemetery
left join tblcountry on
tblcemetery.tblcountry_ID = tblcountry.ID
WHERE
id = ?
ORDER BY
fldcemetery
LIMIT 0,1";
// prepare query statement
$stmt = $this->conn->prepare($query);
// bind id of product to be updated
$stmt->bindParam(1, $this->id);
// execute query
$stmt->execute();
// get retrieved row
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// set values to object properties
$this->fldcemetery = $row['fldcemetery'];
$this->fldcountry = $row['fldcountry'];
}
}
// get database connection
$database = new Database();
$db = $database->getConnection();
// prepare cemetery object
$cemetery = new cemetery($db);
// set ID property of record to read
$cemetery->id = isset($_GET['id']) ? $_GET['id'] : die();
// read the details of cemetery to be edited
$cemetery->readOne();
// create array
$cemetery_arr = array(
"ID" => $cemetery->id,
"Name" => $cemetery->fldcemetery,
"Country" => $cemetery->fldcountry
);
// make it json format
print_r(json_encode($cemetery_arr));
Si vous exécutez la requête séparément (Délestage le? Un ID comme 18), vous obtenez des lignes arrière? –
Oui, qui retourne les mêmes données '{ ID: "18", Nom: null, Pays: null }' –
Juste pour clarifier, je parle d'exécuter la requête dans MySQL Workbench, phpMyAdmin etc. –